Autor | Zpráva | ||
---|---|---|---|
Vladimír Zeman Profil |
#1 · Zasláno: 15. 1. 2008, 16:15:59
Chtěl bych na svém webu nějak zjistit, jak moc každé připojení k databázi (nebo každý php skript) zatěžuje server. Následně bych se pokusil ty nejvíce zatěžující věci nějak omezit či odladit.
Je na to nějaký program nebo dobrý postup? |
||
djlj Profil |
#2 · Zasláno: 15. 1. 2008, 16:23:24
Na dotazy použij třeba EXPLAIN v MySQL.
|
||
Vladimír Zeman Profil |
#3 · Zasláno: 15. 1. 2008, 17:55:53
To není zrovna to, co jsem si představoval. Zkoušel jsem googlit, co to vlastně EXPLAIN je a žádný jiný smysl, nežli při indexování, v tom nevidím. Indexování pro mě stejně nemá smysl, jelikož by to bylo ještě náročnější, nežli normální výběr.
Já bych spíš něco v tom smyslu, že by se provedl dotaz a vypsala se třeba hodnota, jak dlouho dotaz trval, nebo jak moc zatížil databázi. Prostě něco, podle čeho by se dalo porovnat, že tento dotaz je 5x náročnější než dotaz druhý... |
||
ninja Profil |
#4 · Zasláno: 15. 1. 2008, 18:56:00
Vladimír Zeman: jeslti pro tebe indexy nemaji zadny vyznam, tak je asi zbytecne uvazovat o nejake optimalizaci. Rika ti treba neco normalizace databaze?
Pokud chces merit kolik ti jednotlive SQL dotazy berou casu, tak si jednoduse uloz cas tesne pred spustenim dotazu, pak po spusteni a vysledky odecti. |
||
Vladimír Zeman Profil |
#5 · Zasláno: 15. 1. 2008, 19:07:02
ninja
Indexy pro mě nemají smysl z toho důvodu, poněvadž vždy vybírám všechna data (jen pokaždé jinak seřazená) a třídim je dle LIMIT 0,10 apod. Ať tedy použiji jakýkoli indexování, vždy se projdou všechny záznamy z databáze a ne jen potřebných 10. Pokud chces merit kolik ti jednotlive SQL... Jenže všechny dotazy se provedou během vteřinky, což je poměrně špatně měřitelné.. Jinak normalizace databaze mi nic nerika. |
||
Mastodont Profil |
#6 · Zasláno: 15. 1. 2008, 20:15:45
Vladimír Zeman
Funkce microtime, čas na začátku a konci skriptu odečíst. Měří mnohem přesněji než na celé sekundy. |
||
Vladimír Zeman Profil |
#7 · Zasláno: 16. 1. 2008, 13:47:07
ninja
Tak to s těma indexama beru zpět. Nastavil jsem, jen tak na zkoušku, indexování u tabulky s komentářema ke článkům (která obsahuje cca 95000 řádků) a při každém zobrazení článku se tedy procházelo všech 95000 řádků. Po indexaci to procházelo jen nějakých 20-30 řádků. Když jsem potom koukal, jak se to projevilo na grafu zatížení CPU, tak jsem tomu vůbec nevěřil. Ve špičce je počet připojení k tabulce s komentáří v průměru 5 za vteřinu a zatížení serveru kleslo z 90% na nějakých 30%. |
||
djlj Profil |
#8 · Zasláno: 16. 1. 2008, 13:54:53
Vladimír Zeman
I když jen řadíš podle nějakého sloupce, není od věci na něj nastavit index. |
||
Časová prodleva: 18 let
|
0