SQL优化

常见SQL优化

  1. 比较运算符能用"="就不用“<>”:“=”增加了索引的使用几率。
  2. 已经知道只有一条查询结果,使用“limit 1”:使用“limit 1”可以避免全表扫描,找到对应的结果就不会再继续扫描。
  3. 为列选择合理的数据类型:能用TINYINT就不用SMALLINT,能用SMALLINT就不用INT,因为磁盘和内存消耗越小越好。
  4. 将大的INSERT、DELETE、UPDATE查询语句变成多个小查询:可以达成更好的性能和更好的数据控制。
  5. 使用UNION ALL代替UNION,如果结果集允许重复的话:因为UNION ALL不去重,效率高于UNION。
  6. 为获得相同的结果集的多次执行,保持SQL语句前后一致:这样做目的是充分利用查询缓冲,如SELECT name FROM user WHERE id= 123 and pass=456; 在第二次同样的查询,保持和第一次的一致性,如where后面的id和pass的顺序要不能改变
  7. 尽量不使用“SELECT *”:如果不查询表中所有列,尽量不要使用SELECT * ,因为它会进行全表扫描,无法有效利用索引,增大了服务器的负担,以及它和应用程序客户端之间的网络IO开销。
  8. WHERE字句子句里面的列尽量被索引:尽量不是必须
  9. JOIN子句里面的列尽量被索引:同样是尽量而不是必须
  10. ORDER BY的列尽量被索引: ORDER BY的列如果被索引,性能会更好
  11. 使用LIMIT实现分页逻辑:不仅提高性能,而且减少了不必要的数据库和应用之间的网络传输。
  12. 使用EXPLAIN关键字去查看执行计划:EXPLAIN可以检查索引使用情况以及扫描的行,EXPLAIN命令是查看优化器如何决定执行查询的主要方法,可以用于SQL调优。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值