約Optimizing your SQL queries的一篇文章曾建議使用聯盟insted的的或`原因:至少在
在MySQL OR-情況下,使用的時候我是否必須使用UNION insted JOIN?
利用聯盟的替代或
指數失去了速度優勢。因此,雖然索引是
施加1 SELECT * FROM TABLE WHERE COLUMN_A =「值」 OR
COLUMN_B =「值」在另一方面,使用聯盟如此將利用索引這將不會是有用。
1- SELECT * FROM TABLE WHERE COLUMN_A = '值'
2- UNION 3- SELECT * FROM
TABLE WHERE COLUMN_B = '值'
多少這個建議是真的?我應該把我的OR查詢交給Union嗎?
敏銳的讀者會注意到這些例子涉及在**不同**列上操作的ORing條件,這當然不是偶然的。你自己的ORs是那樣的嗎? – Jon 2012-04-17 11:09:18
積極。你有什麼建議? – ALH 2012-04-17 11:12:18
出於我的領域,所以不能說。但是你可以'解釋'這兩個查詢,看看MySql怎麼看待它們。 – Jon 2012-04-17 11:14:18