「OR」操作指標我有喜歡創建用於查詢
where field1=val1 or field2=val2
有的像
where fieldx=valx and fieldy=valy and (field1=val1 or field2=val2)
如何優化這些查詢通過創建索引條件的一些MySQL的查詢?我的直覺是爲第一個查詢爲field1和field2創建單獨的索引,因爲它是一個OR,因此組合索引可能不會有太大的好處。
對於第二個查詢,我打算爲上述原因再次創建2個索引:fieldx,fieldy,field1和fieldx,fieldy,field2。
該解決方案是否正確?這是一個非常大的表,所以我不能通過應用索引和解釋查詢來進行實驗。
您可能會創建一個具有相同結構的新表,但只能使用要測試的數據子集並查看哪個索引最符合您的需求。 – 2010-08-30 07:20:43
這是不可能回答這樣一個寬泛和簡單的問題。每個特殊情況都需要它自己的解決方案。使用EXPLAIN來測試您的查詢。其實,OR操作器不需要任何特殊的處理。它使用相同的索引作爲'WHERE field = value'單個條件 – 2010-08-30 07:24:10
您忘記告訴我們該表僅用於閱讀還是有很多正在進行的CRUD操作... – 2010-08-30 08:11:29