Mysql的优化策略

避免使用null值判断

一般来说,使用null值判断时,一般都是全表检索,但是有例外,覆盖索引时索引会生效。

尽量使用索引

在where条件列或者order by 等涉及的列上加上索引,能够有效地避免全表扫描,缩小查询范围,加快数据检索的速度。

最佳左前缀原则

出现联合索引时,必须联合索引中的第一个字段作为条件才能保证使用到该索引,并且尽量保证条件中列的顺序与索引中列的顺序一致。

1)、增加列和联合索引

2)、测试

不要在索引列上进行计算

使用索引时,在符号(eg:=)左侧进行计算操作(eg:函数等)会导致索引失效,进行全表扫描。

尽量避免范围查询(< > 等)

范围查询可能导致索引失效而进行全表扫描,所以应当尽量避免范围查询。如果一定需要进行范围查询,则将范围查询的列放在查询条件的最后面,此时需要考虑联合索引的合理性(eg:将范围查询列放在索引中的最后)。

字符串型列加引号

不加引号会导致索引失效

尽量不使用模糊查询

模糊查询(eg:like %abc%)可能导致索引失败而进行全表检索。当like的值的离散度较大,like 'abc%'会使用索引;离散值较小时,like 'abc%'也可能导致索引失效。

 

 

如果有写的不对的地方,请大家多多批评指正,非常感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值