你的位置:首页 > 软件开发 > 数据库 > MySql技巧个人笔记

MySql技巧个人笔记

发布时间:2015-11-09 16:00:04
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。

MySql技巧个人笔记

3. or和union的效率

(1)不同字段,将or改为union。

MySql技巧个人笔记

(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。

MySql技巧个人笔记

6.将字符转换为数字

      数字型VS字符串型索引:数字型更高效、查询更快、占用空间更小。

7.拒绝大SQL

        拒绝大sql,拆解成多条简单sql:

原标题:MySql技巧个人笔记

关键词:MYSQL

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。