SQL——书写高质量SQL

  1. 查询SQL的时候尽量不要使用select *,而是select 具体字段
  2. 如果知道查询结果只有一条或者只要最大/最小的一条记录,建议用limit 1(如果name是唯一索引的话,就不用加了,因为limit的存在就是为了防止全表扫描)
  3. 应尽量避免在where子句中使用or来连接条件(or可能会使索引失效,从而全表扫描)
  4. 优化Like语句,将%放在后面
  5. 使用where条件限定要查询的数据,避免返回多余的行
  6. 避免在索引列上使用mysql的内置函数,会使索引失效
  7. 应尽量避免在where子句中对字段进行表达式操作,这会导致系统放弃索引从而全表扫描
  8. inner join,left join,right join,优先使用inner join。如果要使用left join,左边表数据结果尽量小,如果有条件尽量放在左边处理
  9. 应尽量避免在where子句中使用!=或者<>操作符,否则将放弃索引而进行全表扫描
  10. 使用联合索引时,要注意索引列的顺序,一般遵循最左匹配原则
  11. 对查询进行优化,应考虑在where及order by涉及的列上建立索引
  12. 如果插入的数据过多,考虑批量插入
  13. 在适当的时候,使用覆盖索引
  14. 慎用distinct,这个字段一般用于过滤重复字段,以返回不重复的记录。在查询一个字段或者很少字段的情况下,给查询带来了优化。但是在字段很多的时候使用,却会大大降低查询效率
  15. 删除冗余和重复索引
  16. 如果数据量较大,优化删除、修改语句
  17. where子句中考虑使用默认值代替null值
  18. 不要有超过5个以上表连接
  19. 如果B的数据量小于A,适合用in。如果B的数据量大于B,适合用exist(先执行主查询,获取数据后,再放到子查询中做条件验证,根据验证结果,来决定主查询的数据结果是否保留)
  20. 尽量用union all代替union。如果用union,不管检查结果有没有重复,都会尝试进行合并,最终在输出结果前排序
  21. 索引一般不要太多,一般5个以内
  22. 尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型
  23. 索引不适合建在有大量重复数据的字段上,如性别这类型数据库字段
  24. 尽量避免向客户端返回过多数据量
  25. 当在SQL语句中连接多个表时,请使用表的别名,并将别命名前缀于每一列上
  26. 尽可能使用varchar/nvarchar代替char/nchar(变长字段存储空间小,在一个相对较小的字段搜索,效率更高)
  27. 如果字段类型是字符串,where时一定要用引号括起来
  28. 使用explain分析你的SQL计划
  29.  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的小工具;种子转磁力链接的

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值