SQL 优化

SQL优化

基本语句优化10原则

  • 原则1 避免在列上面进行运算,否则会导致索引失效。
  • 原则2: 使用JOIN的时候应该用小结果集驱动大结果集,拆分复杂的JOIN语句,避免JOIN多个表的时候造成堵塞。
  • 原则3: 使用LIKE模糊查询的时候,避免使用%%。
  • 原则4: 仅列出需要查询的字段,对速度并没有明显的影响,主要考虑到了内存。
  • 原则5: 使用批量插入语句节省交互。
  • 原则6: limit基数比较大的时候使用between。
  • 原则7: 不要使用rand函数获取多条随机记录。
  • 原则8: 避免使用NULL。
  • 原则9: 不要使用count(id),而应该是count(*)。
  • 原则10:不要做无谓的排序操作,而应该尽可能在索引中完成排序。

2 索引与性能分析

如何知道SQL执行效率呢?

set profiling=1

上面的语句可以开启mysql的性能跟踪功能。

show profiles;

上面的语句可以查看每条mysql对每一条语句的详细的执行报告。用这种方法可以定位瓶颈。

mysql建立和使用索引的基本原则是:

  • 每个表的索引应该在5个以下,应该合理利用部分索引和联合索引。
  • 结果比较集中的列上不应该建索引。
  • 建立索引的字段结果集最好分布均匀,或者符合正态分布。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值