Autor | Zpráva | ||
---|---|---|---|
stepanka Profil * |
#1 · Zasláno: 23. 5. 2012, 11:41:35
Ahoj,
nevíte někdo o nějakých pokročilých technikách, jak optimalizovat SQL dotazy? Všechny základní úkony už jsme provedli: 1) Na vybíraných sloupcích jsou indexy. 2) Nikde není "SELECT * FROM", vždy vybírám konkrétní sloupce. 3) Pokud je možný LIMIT, používám ho. 4) U vyhledávání není BOOLEAN MODE. 5) Nepoužívám proměnné, např.: NOW(), ale přímo datum kvůli cachování. 6) Tabulky jsou správně pospojované přes JOIN. atd. Jenže dat je v tabulkách opravdu hodně, řádově tisíce článků a zpráv a některé dotazy trvají kolem 2s. Někde jsem zaslechla, že existují nějaké pokročijlejší techniky, jak zátěž na server snížit. Nevíte někdo o nějakých? Alespoň zdroj, nebo jiné nápady. Moc děkuju! |
||
ShiraNai7 Profil |
#2 · Zasláno: 23. 5. 2012, 12:41:42
No minimálně můžeš zkusit EXPLAIN na daný dotaz a tak zjistit, jak se s dotazem databáze vypořádá.
EXPLAIN SELECT ... FROM ... a tak dále |
||
Kajman Profil |
#3 · Zasláno: 23. 5. 2012, 12:59:59
stepanka:
„1) Na vybíraných sloupcích jsou indexy.“ Indexy jsou důležitější na sloupcích, podle kterých se filtruje, seskupuje nebo řadí. Obecně můžete dotaz ladit postupným přidáváním dalších sloupců či tabulek a zaměřit se na skokové zvýšení zátěže. Prostě najít to místo, co trvá nejdéle. Také je občas rychlejší použít joiny místo in (select ....). Ale určitě se dá konktrétněji poradit jen s explainem a celým dlouhotrvajícím dotazem (nejlépe i s rozepsáním indexů u tabulek, se kterými pracuje). |
||
stepanka Profil * |
#4 · Zasláno: 23. 5. 2012, 13:59:55
Moc děkuju za rady, ten EXPLAIN si zkusím nastudovat. Kdyby někoho napadlo ještě něco, budu ráda.
Díky moc. |
||
Kajman Profil |
#5 · Zasláno: 23. 5. 2012, 15:03:20
Také záleží na nastavení stroje a sql serveru. Komplexní pojednání Vám sem těžko někdo napíše. Rozsah problematiky je tedy spíše knižní než pro krátký příspěvek do diskuze. Možná si zkuste vypůjčit v knihovně něco, co se tím (alespoň okrajově) zaobírá.
http://books.google.cz/books/about/MySQL.html?id=O0rBaS3oj_0C&redir_esc=y http://books.google.cz/books?id=BL0NNoFPuAQC&hl=cs&source=gbs_similarbooks |
||
stepanka Profil * |
#6 · Zasláno: 23. 5. 2012, 16:38:11
Kajman:
Děkuju i za tuhle reakci, vím, že je to složitá a obsáhlá problematika a nad nějakou knížkou popřemýšlím. Díky. |
||
Časová prodleva: 12 let
|
0