MySQL总结

1.用union比or更快

原因是在查询中使用OR通常会导致Query Optimizer放弃使用索引查找并恢复为扫描。如果查看两个查询的执行计划,则很可能会看到使用OR的扫描,并寻找使用UNION的位置。

如果要获得所有结果,通常最好使用UNION ALL而不是UNION,因为这样可以消除行匹配的开销

SELECT name, population, area 
FROM world
WHERE area > 3000000 
OR population > 25000000;
==========================================================
SELECT name, population, area
FROM world
WHERE area > 3000000

UNION

SELECT name, population, area
FROM world
WHERE population > 25000000;

参考:https://stackoverflow.com/questions/15361972/why-is-union-faster-than-an-or-statement

2.尽量用 <> 代替 !=

3.用MOD()求余,而不是%(前者似乎更快)

 

你可能感兴趣的:(mysql)