西瓜地

种瓜得瓜

索引使用-一点技巧

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就可以接受,如果是联合索引,重点第一字段的区分度。


阅读更多
个人分类: 数据库应用经验
想对作者说点什么? 我来说一句

合理使用索引技巧

2012年10月15日 16KB 下载

oracle SQL优化技巧

2011年06月04日 49KB 下载

没有更多推荐了,返回首页

不良信息举报

索引使用-一点技巧

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭