MySQL 之 常用sql优化

28 篇文章 0 订阅

 

1   优化insert

      多条记录插入推荐:  insert into test values (1,2),(1,3),(1,4)

 

2 优化group by

      默认情况小,mysql 排序所有 group by  col1,col2  .......。查询方法如同在查询中指定 order by col1,col2 .....。

      如果你想要避免排序结果的消耗,你可以指定 order by null.

 

3 优化order by 

     某些情况下可以使用一个索引来 满足 order by 子句,而不需要额外排序。

    where 条件和order by 使用相同索引, 并且order by 顺序和索引顺序相同,并且order by的字段都是升序或者降序。

   以下情况不使用索引(待具体量级验证)

    select * from test  order by   col1  asc, col2 desc; -- order by 子句 混合 asc,desc

    select * from test   where  col1='zhangsan'  order by  col2  desc;  --where 条件的列,与order by 列 不同

 

4 优化 join 语句

 join  on 条件字段加索引

 用join 代替 子查询

  连接(JOIN).. 之所以更有效率一些,是因为 MySQL不需要在内存中创建临时表来完 成这个逻辑上的需要两个步骤的查询工作

 

 

5 优化or 条件

    对于or子句,如果要利用索引,则or之间的每个条件列都必须用到索引;如果没有索引,则应该考虑增加索。

 

  

 

 

 

 

 

 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值