约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