[英]Way to optimize huge SQL Query
我有一個很長的查詢,如果列 id_cat 與用戶搜索匹配,它會返回一些記錄。
它看起來像這樣:
SELECT *
FROM table
WHERE (id_cat = 50 OR id_cat = 51 OR id_cat = 52...) up to some high numbers.
在上述情況下,查詢變得非常大,這增加了響應時間。
我需要優化它,因為響應時間接近 15 秒(基本上它搜索所有類別)。
我該怎么做?
首先,我正在考慮構建如下查詢:
SELECT * FROM table WHERE (id_cat = (50 OR = 51 OR = 52))
這應該減少 sql 單詞的數量,但它不會像這樣工作(返回 null 而不是行)。 我沒有更多的想法。
你對如何處理有什么建議嗎?
首先,使用in
構建查詢:
SELECT *
FROM table
WHERE id_cat IN (50, 51, 52, . . .);
MySQL 使用常量值優化IN
。 沒有索引,仍然有全表掃描。 所以,我還推薦table(id_cat)
上的索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.