优化数据库查询的十大方法

69 篇文章 0 订阅
  1. 不使用select*,只取需要的字段,节约资源。select*很可能不会使用覆盖索引。
  2. 已知查询结果只有一条,使用limit1,这样找到记录后就不用扫描剩余的记录了。
  3. like语句,%不要放在最前面。把%放前面,并不走索引。因为分析器会先预估走索引和不走索引的行扫描数,当数据量大时,分析器会认为不走索引比走索引的效率高。%匹配任意个字符,下划线匹配一个字符。
  4. 如果插入数据过多,考虑批量插入。如果数据量较大,尽量避免同时修改或删除过多数据。
  5. exist & in 的合理利用:1)in先做子查询,然后将子查询作为主查询的条件。2)exists先做主查询,然后将子查询作为条件,来决定主查询的结果是否保留。要选择最外层循环小的用法,这取决于两个表的大小。
  6. 尽可能使用varchar/nvarchar代替char/nchar(nvarchar是unicode编码)。变长字段存储空间小,可以节省存储空间。对于查询来说,在一个相对较小的字段内搜索,效率更高。
  7. 慎用distinct关键字:在查询一个字段或者很少字段时,distinct给查询带来优化效果。但是在字段很多的时候使用,却会大大降低查询效率。
  8. 满足SQL需求的前提下,推荐优先使用Inner join(内连接),如果要使用left join,左边表数据结果尽量小,如果有条件尽量放到左边处理。
  9. 优化where子句:1)尽量避免用or连接。可以用union all代替。2)尽量避免在where子句中使用!=或<>操作符。3)尽量避免在where子句中对字段进行表达式操作,where子句中考虑使用默认值代替null。
  10. 索引: 使用联合索引时,注意索引列的顺序,一般遵循最左匹配原则。考虑在where和order by涉及的列上建立索引,尽量避免全表扫描。删除冗余和重复索引。索引不适合建在有大量重复数据的字段上,如性别这类型数据库字段:如果索引列有大量重复数据,Mysql查询优化器推算发现不走索引的成本更低,很可能就放弃索引了。

参考资料如何优化数据库查询

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值