MySQL 的 FIND_IN_SET 函數因不使用索引而臭名昭著,導致查詢效率低下。但是,在處理逗號分隔清單時,還有其他方法可以實現所需的索引行為。
所提供的答案中描述的技術建議使用帶有參數的準備好的語句接受逗號分隔列表形式的字串。透過在預備語句中使用具有非 NULL 鍵的範圍類型,可以確保在執行 IN 子句時使用索引。
例如,以下查詢使用索引執行範圍搜尋'id' 欄位:
explain select * from ratings where id in (2331425, 430364, 4557546, 2696638, 4510549, ...)
雖然這種方法可以實現高效率的索引查詢,但考慮以下預防措施至關重要:
以上是如何讓MySQL的FIND_IN_SET函數使用索引?的詳細內容。更多資訊請關注PHP中文網其他相關文章!