ich die folgende Abfrage leite und wie ich es ändern, dauert es noch knapp 5 Sekunden zu laufen, was völlig inakzeptabel ist ...Mysql Tabelle oder Abfrage Optimierung
Die Abfrage:
SELECT cat1, cat2, cat3, PRid, title, genre, artist, author, actors, imageURL,
lowprice, highprice, prodcatID, description
from products
where title like '%' AND imageURL <> '' AND cat1 = 'Clothing and accessories'
order by userrating desc
limit 500
I habe versucht das "like%" herauszunehmen, das "imageURl <> ''" aber immer noch das selbe herausnehmend. Ich habe versucht, nur 1 colum zurückzugeben, immer noch das gleiche.
Ich habe Indizes für fast jede Spalte in der Tabelle, sicherlich alle Spalten in der Abfrage erwähnt.
Dies ist im Grunde für eine Kategorie Auflistung. Wenn ich eine Volltextsuche nach etwas in der Titelspalte mit einem Volltextindex durchführe, dauert es weniger als eine Sekunde.
Sollte ich einen weiteren Volltextindex zur Spalte cat1 hinzufügen und den Abfragewinkel auf "Match gegen" für diese Spalte ändern?
Erwarte ich zu viel?
Die Tabelle hat knapp 3 Millionen Zeilen.
können Sie uns das Tabellenschema zeigen – amd
3 Mil Row-Tabelle und Index auf fast jeder Spalte .. das ist einfach nicht gut. –