Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Da li je "SET @a = 1;" upit ??? Molim experta za pomoc!

[es] :: MySQL :: Da li je "SET @a = 1;" upit ??? Molim experta za pomoc!

[ Pregleda: 2220 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zgas

Član broj: 74613
Poruke: 334
*.ptt.rs.

Sajt: odbrojavanje.com


Profil

icon Da li je "SET @a = 1;" upit ??? Molim experta za pomoc!22.06.2009. u 13:12 - pre 180 meseci
Imam problem. Moj hosting provajder mi dozvoljava 50 upita po sekundi.

Svake sekunde moj PHP poziva jednu proceduru.

Kada u MySQL Administratoru gledam na "Health" mysql servera (broj querija koji je trenutno izvrsen),
kada PHP pozove porceduru on izbroji da je izvrseno oko 20 upita!

Nije mi jasno kako, ako u proceduri imam samo jedan SELECT i jedan UPDATE.

Ima dosta izraza tipa: "SET @a = 1;" i sl. koji su mi neophodni za izracunavanje vrednosti za update.
Ali to ne smatram za upit vec kao operaciju sa nekim variablama...

Sada sam u nedoumici da li ce mi ovo praviti problem kod hosting provajdera, odnosno nije mi jasno sta se podrazumeva pod upitom... ?

Pomoc!
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Da li je "SET @a = 1;" upit ??? Molim experta za pomoc!22.06.2009. u 18:43 - pre 180 meseci
kakav provajder .... napravis ti to sve u jednom veeeeeeeelikom union/subselect upitu i bas te briga ...

mysql nema definiciju "sta je upit a sta nije" ... realno, sve je upit ... ali ono sto mozes da pratis su vrednosti:
Code:

 show global status like 'Queries';


ta status varijabla se povecava za svaki query ... (i ovaj show status je query) tako da ... primer:

Code:


mysql> show global status like 'Queries'; select 1; select 2; select 3;  show global status like 'Queries';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Queries       | 36    | 
+---------------+-------+
1 row in set (0.00 sec)

+---+
| 1 |
+---+
| 1 | 
+---+
1 row in set (0.00 sec)

+---+
| 2 |
+---+
| 2 | 
+---+
1 row in set (0.00 sec)

+---+
| 3 |
+---+
| 3 | 
+---+
1 row in set (0.00 sec)

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Queries       | 40    | 
+---------------+-------+
1 row in set (0.00 sec)

mysql> show global status like 'Queries'; set @a=1; set @b=2; select @a,@b;  show global status like 'Queries';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Queries       | 41    | 
+---------------+-------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

+------+------+
| @a   | @b   |
+------+------+
|    1 |    2 | 
+------+------+
1 row in set (0.00 sec)

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Queries       | 45    | 
+---------------+-------+
1 row in set (0.00 sec)



kao sto vidis, varijabla queries je povecana na ona dva set-a .. tako da, ako tvoj provajder koristi tu varijablu - onda si u problemu ...

e sad, isto to moze "mnogo finije ali komplikovanije" da se izvadi iz Com_% varijabli .. pitanje je sta tvoj provajder koristi .. ne postoji nacin da mi to odavde znamo ...

ono sto mogu da kazem je da mysql nema nikakav sistem da "per user" radi neku kontrolu resursa .. to je "long standing feature request" a u medjuvremenu dok mi ne odlucimo na koji nacin uopste tako nesto da se izvede provajderi koriste razne trikove .. rade monitoring baza citajuci vrednosti statusnih varijabli pa onda lokuju usera (skinu mu prava, promene mu sifru i slicno) .. 1and1 na primer proverava kad predjete 100M (show table status pa sabira) i onda vasem useru skine prava na insert .. ostavi samo select i delete ... to rade iz neke skripte svakih 15 min ..

 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
*.ptt.yu.

Sajt: odbrojavanje.com


Profil

icon Re: Da li je "SET @a = 1;" upit ??? Molim experta za pomoc!23.06.2009. u 13:05 - pre 180 meseci
Hvala, ostaje mi da vidim na koji nacin provajder ogranicava rad sa mysql-om.

Uzgred, ako uzmem u obzir da je i SET @a = 0; upit, ispada da moja procedura izvrsi 22 upita.
Medjutim, zauzece procesora za ovu operaciju je relativno receno vrlo vrlo malo, pa bi razmisljam bilo logicno da
provajderi zakljucavaju korisnike na osnovu toga koliko se server procesorski opterecuje, a ne koliko ima upita.
Moze biti i jedan upit ali vrlo komplikovan.

Da li imate iskustva o tome, da li provajderi kontrulisu rad sa mysql-om u zavisnosti od procesorskog opterecenja?
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Da li je "SET @a = 1;" upit ??? Molim experta za pomoc!24.06.2009. u 05:06 - pre 180 meseci
Citat:
zgas
Da li imate iskustva o tome, da li provajderi kontrulisu rad sa mysql-om u zavisnosti od procesorskog opterecenja?


oni bi - vrlo radi ... ali je to jako komplikovano ... mysql nema nikakav sistem kojim bi to omogucio tako da sve sto sam ja video da provajderi rade je citaju te razne brojace i na osnovu njih limitiraju rad ... i to je uz pomoc stapa i kanapa :( ...

vrlo je moguce da ce provajderi trositi drizzle posto je tim koji ga radi "osakatio" doticni projekat maksimalno tako da se provajderu realno isplati da tera jednu instancu aplikacije za svakog korisnika... onda na sistemskom nivou mozes da kontrolises upotrebu resursa i limitiras istu kako zelis... sa mysql-om mi imamo odavno te zahteve za nekakvu resource kontrolu unutar mysql-a ali ja ne znam da postoji work log za to - dakle jos nije odluceno ni da ce to da se radi (ikad) a kamoli kada se planira da bude i kojoj verziji ...


 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.static.isp.telekom.rs.

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Da li je "SET @a = 1;" upit ??? Molim experta za pomoc!29.06.2009. u 07:47 - pre 180 meseci
Koliko para toliko i muzike. Ovo što ti koristiš je ili besplatan hosting (oni su svi crap, a najčešće ne daju ni MySQL), srpski hosting (oni su svi skupi a loši) ili jako jeftin hosting.
Ako hoćeš pristojan hosting bez ovako glupih limita (20 querija u sekundi? lol) onda moraš uzeti dobar inostrani hosting, koji košta bar 5$ mesečno (jeftinije i ne isplati im se da budu pristojni).
Nađi par provajdera i onda na webhostingtalk vidi šta drugi ljudi kažu o njima. Kakva im je podrška, uptime, odnos sa korisnicima...

[Ovu poruku je menjao misk0 dana 29.06.2009. u 17:44 GMT+1]
"Common sense is not so common." - Voltaire
 
Odgovor na temu

[es] :: MySQL :: Da li je "SET @a = 1;" upit ??? Molim experta za pomoc!

[ Pregleda: 2220 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.