索引使用-一点技巧

1.select * from user_info a where user_no = 59027 连续出现大量慢查询

user_info 表中 字段user_no 建立了索引,而且索引的区分度很高,一直报慢查询,查看执行计划发现一直不走索引。

原因:user_info 表中的user_no 为varchar类型,但是查询条件中是数值型,这种情况下会导致索引失效,将语句修改为:

select * from user_info a where a.user_no = '59027',索引使用正常了。

一点技巧:无论字段是int,varchar,查询条件中的值都加上单引号,当做字符串处理即可。也就是值是字符串是可以走索引的,如果值是数值型,类型不对时不走索引。

总有想不到的地方,多学多问。

2.索引区分度计算常用方法

select count(distinct user_no)/count(1) from user_info;

user_no 是索引字段,一般区分度达到0.1就可以接受,如果是联合索引,重点第一字段的区分度。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weichao9999

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值