1.数据null时sum的用法 mysql数据库SUM(A+B)不一定等于SUM(A)+SUM(B),当A或B为NULL时,SUM(A+B)=NULL。2.or改为in 同一字段,将or改写为in()。OR效率:O ...
1.数据null时sum的用法
mysql数据库SUM(A+B)不一定等于SUM(A)+SUM(B),当A或B为NULL时,SUM(A+B)=NULL。
2.or改为in
同一字段,将or改写为in()。OR效率:O(n);IN效率:O(Log n);当n很大时,OR会慢很多。注意控制in的个数,建议n小于200。
3. or和union的效率
(1)不同字段,将or改为union。
(2)相同字段(针对单表操作)
对于索引列来最好使用union all,因复杂的查询【包含运算等】将使or、in放弃索引而全表扫描,除非你能确定or、in会使用索引。对于只有非索引字段来说你就老老实实的用or 或者in,因为 非索引字段本来要全表扫描而union all 只成倍增加表扫描的次数。对于及有索引字段【索引字段有效】又包含非索引字段来时,按理你也使用or 、in或者union all 都可以,但是我推荐使用or、in。
4.union all与union
若无需对结果进行去重,则用union all 而非union;union会自动对结果去重,有去重开销。
5.Group by去除排序
Gourp by 实现分组、自动排序。则无需排序:order by null。
6.将字符转换为数字
数字型VS字符串型索引:数字型更高效、查询更快、占用空间更小。
拒绝大sql,拆解成多条简单sql:
原标题:MySql技巧个人笔记
关键词:MYSQL
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。