# Query_time: 0.007476 Lock_time: 0.000012 Rows_sent: 4 Rows_examined: 13463
SELECT id,name FROM items
WHERE items_approved = 1 AND item_name LIKE '%apple%'
ORDER BY RAND() LIMIT 4;
ich, dass ich viele langsame Abfragen in meiner mysql-slow.log habe nur bemerkt so fange ich sie eins nach dem anderen ...meine MYSQL Verbesserung abfragt
Beginnen wir mit dieser einfach zu optimieren query:
aber die Tabelle enthält 15K Artikel, so brauche ich einen besseren Weg, um 4 zufällige Elemente zu erhalten. Die Items-Tabelle hat zwei Indizes: ein Volltext auf Name und eine primäre auf ID
in meinem E-Commerce, das Ziel ist im Grunde zu zeigen 4 zufällige Elemente, die das Wort "rot" im Namen für jede Kategorie haben (ungefähr 15 Kategorien), wenn ein Benutzer eine Seite besucht.
was ist ein besserer Ansatz dazu?
UPDATE
my.cnf wird wie dieses
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
Haben Sie welche? Indizes definiert? – BenM
Weniger als 1 Sekunde ist in Ordnung. Wahrscheinlich haben Sie Ihre slow_queries auf 0 gesetzt. Versuchen Sie, sie auf eine vernünftigere Zahl zu erhöhen, damit Sie echte langsame Abfragen verfolgen können. – aynber
Weniger als 1 Sekunde ist in Ordnung? Was für eine Logik ist das? – BenM