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

Optimizacija za SELECT upite

[es] :: MySQL :: Optimizacija za SELECT upite

[ Pregleda: 2353 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.verat.net.



+1365 Profil

icon Optimizacija za SELECT upite06.12.2008. u 10:00 - pre 187 meseci
Potrebno mi je da maksimalno optimizujem MySQL (najnovija 5.0.x verzija, možda i 5.1.x ako mi softver bude htio da radi sa tom verzijom) server za SELECT upite. Sve ostale operacije me ne zanimaju skoro upošte i mogu da traju koliko god treba :)
Šta da gledam, dajte mi neke savjete. I što se tiče hardvera (mada je tu sve već prilično određeno) i što se tiče softverskih optimizacija.
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.xdsl.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Optimizacija za SELECT upite06.12.2008. u 10:20 - pre 187 meseci
bez promene aplikacije - QUERY CACHE
sa promenom aplikacije - MEMCACHED

za ostalo, morao bi da das malo vise informacija
 
Odgovor na temu

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.adsl.verat.net.



+1365 Profil

icon Re: Optimizacija za SELECT upite06.12.2008. u 15:42 - pre 187 meseci
Ne znam sta te interesuje :)
Na query cache sam racunao, ne znam samo koliko da mu dam memorije i da li moze da postane kontraproduktivno u nekom trenutku. Zanimaju me da li postoji jos neki parameter slican QC, na koji bi trebao da obratim paznju.

Upiti bi bili brzi sami po sebi, jedino sto bi ih bilo puno. Vracali bi samo 1 red sa maksimalno 7-8 kolona, u svakoj samo po par karaktera.
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.xdsl.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Optimizacija za SELECT upite06.12.2008. u 17:45 - pre 187 meseci
Citat:
Tyler Durden
Na query cache sam racunao, ne znam samo koliko da mu dam memorije i da li moze da postane kontraproduktivno u nekom trenutku. Zanimaju me da li postoji jos neki parameter slican QC, na koji bi trebao da obratim paznju.

Upiti bi bili brzi sami po sebi, jedino sto bi ih bilo puno. Vracali bi samo 1 red sa maksimalno 7-8 kolona, u svakoj samo po par karaktera.


query cache mozes da koristis ako nemas mnogo update-a .. zavisno od koliko cesto imas promene mozes da teras query cache do 4G.
savetujem da ga stavis na "manju" vrednost .. ~100M pa da pratis query cache hit ratio, dokle god je preko 80% mozes da povecavas
vrednost, ako padne ispod 80% nemoj dalje posto onda usporavas sistem. razlog je to sto se pri svakom update/delete/insert radi invaliditizacija query cache-a tako da ako imas mnogo promena u bazi hit ratio ce ti biti mali posto ce on konstantno prolaziti kroz query cache i cistiti ga - sto traje neko vreme.

sve ostalo zavisi od izgleda upita, izgleda tabela i odabranog storage engine-a. za innodb bustuj innodb buffer size na 80% ram-a, za myisam povecaj table_cache, budi siguran da imas dovoljan broj file handle-ova, razmisli koliki ti treba sort buffer i key buffer ...

sve to ima uticaja, no, ne postoji "silver bullet", sve se to tweakuje u odnosu na to kako radi tvoja aplikacija i kakve upite izvrsava. tu u mnogome moze da pomogne enterprise monitor posto daje mnogo dobru statistiku sta se kada desava, no, doticni nije dzaba (tj. dzaba je za one koji placaju support)
 
Odgovor na temu

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.adsl.verat.net.



+1365 Profil

icon Re: Optimizacija za SELECT upite06.12.2008. u 19:36 - pre 187 meseci
Kako da izracunam query cache hit ratio?
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.xdsl.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Optimizacija za SELECT upite07.12.2008. u 12:09 - pre 187 meseci
Code:

mysql> show global status like '%qcache%';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| Qcache_free_blocks      | 0     | 
| Qcache_free_memory      | 0     | 
| Qcache_hits             | 0     | 
| Qcache_inserts          | 0     | 
| Qcache_lowmem_prunes    | 0     | 
| Qcache_not_cached       | 0     | 
| Qcache_queries_in_cache | 0     | 
| Qcache_total_blocks     | 0     | 
+-------------------------+-------+
8 rows in set (0.00 sec)


mislim da je prilicno jasno :)

ako ti lowmem_prunes ode gore, povecaj prostor posto ti mysql prazni cache zato sto nema dovoljno prostora.


e sad, za "kako da izracunas" ...
Broj selectova: Com_select
Code:

Efficiency = Qcache_hits / ( Com_select + Qcache_hits )


bitne informacije su takodje:

Code:

Qcache_hits / Qcache_inserts


Code:

( Com_insert + Com_delete + Com_update + Com_replace ) / Qcache_hits


jasno ?
 
Odgovor na temu

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.verat.net.



+1365 Profil

icon Re: Optimizacija za SELECT upite10.12.2008. u 15:42 - pre 186 meseci
Evo stanja kod mene
Code:
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| Qcache_free_blocks      | 6675      |
| Qcache_free_memory      | 22132384  |
| Qcache_hits             | 529801382 |
| Qcache_inserts          | 250209335 |
| Qcache_lowmem_prunes    | 78569833  |
| Qcache_not_cached       | 20929010  |
| Qcache_queries_in_cache | 17701     |
| Qcache_total_blocks     | 45896     |
+-------------------------+-----------+


Pozabavicu se sad malo racunom...
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.xdsl.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Optimizacija za SELECT upite10.12.2008. u 23:06 - pre 186 meseci
moraces da pokupis i

show global status like 'Com_%';

za query cache hit ratio imas formulu .. ostale mozes sam da izvedes... matematika je jednostavna malo + malo - i malo / .. tu i tamo mozda nesto treba pomnoziti :)
 
Odgovor na temu

[es] :: MySQL :: Optimizacija za SELECT upite

[ Pregleda: 2353 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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