mysql-sq优化-or子句

mysql 5.5之后
子查询不如关联查询的效率高-原因是因为mysql不需要在内存中创建临时表来完成这个逻辑上需要2个步骤的查询工作



--优化or条件
对于or 的查询子句,如果要利用索引 那么or的每个子句都有有索引 没有需要添加
否则就不会用到索引

show index from sales;
index id, index year
company_id,year 符合索引

explain select * form sales where id = 2 or year=1998
如果2个都用到了索引 那么分析过程应该是
extra use union(id,year) ; use INDEX
是因为 mysql在处理含有o子句的查询时候,实际是对or的每个字段分别查询后的结果进行了union操作
tags: Mysql