Autor | Zpráva | ||
---|---|---|---|
bigshock Profil |
#1 · Zasláno: 7. 11. 2011, 19:34:50
mam tabulku v databázi. má cca 7M záznamů.
bohužel se tam projevu dost zátěž a slow log ukazuje zpomaleni. Dle rady k tomu dochází díky ukládání dotazu na disk. Při dotazu explain using filesort Ale jak se toho zbavit? Tabulka ma id(int), mypath(int) na obou je index EXPLAIN SELECT name, seoname, mypath FROM struktura WHERE mypath = '15743486' ORDER BY name vysledek explain: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE struktura ref mypath mypath 4 const 1 Using where; Using filesort kdyz zrusim order y name zbavim se toho ale to není řešení |
||
Kcko Profil |
#2 · Zasláno: 7. 11. 2011, 20:16:24 · Upravil/a: Kcko
bigshock:
Zkus pohledat na netu. Viděl jsem jakýsi fígl, aby se index použil i při ASC řazení, které zatím MySQL nepodporuje. (Pokud Ti nikdo neodpoví, tak se na to po zápase podívám ...). Zatím jen rychle http://stackoverflow.com/questions/2886575/mysql-order-by-desc-is-fast-but-asc-is-very-slow http://explainextended.com/2010/11/02/mixed-ascdesc-sorting-in-mysql/ |
||
Kajman_ Profil * |
#3 · Zasláno: 7. 11. 2011, 20:36:50
bigshock:
Pomůže složený index (mypath,name). |
||
bigshock Profil |
#4 · Zasláno: 8. 11. 2011, 14:57:37
díky pokusím se z toho něco vyčíst
|
||
bigshock Profil |
#5 · Zasláno: 8. 11. 2011, 15:13:11
zda se ze po pridani slozeneho indexu mypath, name je rychlost luxusni ale porad tam je using filesort
|
||
bigshock Profil |
#6 · Zasláno: 8. 11. 2011, 15:23:24
SELECT name, seoname
FROM struktura WHERE level = '1' ORDER BY name i takovy dotaz trva pul vteriny coz mi prijde dost |
||
Kajman_ Profil * |
#7 · Zasláno: 8. 11. 2011, 16:17:10
bigshock:
„i takovy dotaz trva pul vteriny coz mi prijde dost“ Pokud tam nemáte index vhodný pro filtrování podle level, tak je to hodně o rychlosti disku, procesoru a velikosti přidělené paměti. Musíte si udělat priority, které dotazy se dělají často a je potřeba je odbsloužit rychle a kde půl vteřiny můžete počkat. Indexy pak navrhnout podle toho. Moc indexů může totiž zase příliš zržovat úpravy tabulky (na indexovaných sloupcích). |
||
Časová prodleva: 14 let
|
0