konto usunięte
Temat: [InnoDB] Join'y a użycie filesort'a
Witam!Mam problem z bazami danych mysql (engine InnoDB). Proste zapytanie wykonuje się bardzo długo około 3s, oczywiście indeksy dobrze są ustawione. Bez INNER JOIN'ów wykonuje się ono 0,00009s, a z Join'ami ponad 3s. Co może być problemem? Konfiguracja mysql pozwala na użycie 1024 MB ram, a dane zajmują tylko 40MB. Oto zapytanie:
SELECT entries.id, entries.alias, entries.name, entries.plain, entries.permalink, entries.site, categories.id AS cat_id, categories.name AS cat_name, crawlers.id AS crawl_id, crawlers.name AS crawl_name
FROM entries
FORCE INDEX (
visible_added
)
INNER JOIN categories ON categories.id = entries.catid
INNER JOIN crawlers ON crawlers.id = entries.crawler
WHERE entries.visible = 'n'
ORDER BY entries.added DESC
LIMIT 10
Wynik EXPLAIN:
1 SIMPLE entries ALL NULL NULL NULL NULL 19759 Using where; Using temporary; Using filesort
--------------------------------------------------------------
1 SIMPLE crawlers ALL PRIMARY NULL NULL NULL 2 Using where
--------------------------------------------------------------
1 SIMPLE categories eq_ref PRIMARY PRIMARY 1 warez.entries.catid 1
--------------------------------------------------------------
Czy potrafi ktoś pomóc?
Pozdrawiam, Mateusz