0
# 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;
我只注意到我有很多的查詢速度慢的在我的mysql-的slow.log 所以我開始優化它們一個接一個......提高我的MySQL查詢
讓我們從這個簡單的查詢:
SELECT id,name FROM items
WHERE items_approved = 1 AND item_name LIKE '%red%'
ORDER BY RAND() LIMIT 4;
但該表包含15K項目,所以我需要一個更好的方式來獲得4個隨機項目。 該項目表有兩個索引:名稱上的一個全文和編號上的一個主文件
在我的電子商務中,目標基本上是顯示4個隨機項目,每個類別的名稱中都有「紅色」大約15個類別)用戶訪問一個頁面。
什麼是更好的方法呢?
UPDATE
my.cnf中設置這樣
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
你有沒有索引定義? – BenM
少於1秒是好的。您可能會將您的slow_queries設置爲0.嘗試將其提高到更合理的數字,以便您可以跟蹤真正的慢速查詢。 – aynber
不到1秒就好了?那是什麼樣的邏輯? – BenM