mysql索引笔记

来源:互联网 发布:淘宝怎么去推广 编辑:程序博客网 时间:2024/06/06 17:54
每张表,在执行sql的时候同时只用一个索引,所以尽量使用多条件复合索引

索引不要建太多

索引会减慢增删改的速度

----------------------华丽丽的分割线----------------------------------------------------------------

索引采用   最左前缀匹配原则
mysql  会一直从左向右匹配索引  知道范围查询为止
索引(a,b,c)
a=1  可用索引
b=2  用不到索引(就是说以a打头的索引,如果条件没有a,就用不了,后面的也用不了)
a=1 and b>2 and c=3 用到索引中的(a,b) c没用到,因为到b就是范围查询了,(a,b,c)中b之后的索引c 因为b是范围查询而终止
b=2 and a=3 and c>3 都用到了,因为c才是范围查询  (a,b,c)中  c是最后一个,没有后面的索引,所以不会再影响后面

自己的总结:要查询的时候,用到的条件一定要有索引中的第一个   比如上面的  a  一定要在查询条件中,并且会用到范围查询的条件要尽量放到最后

----------------------华丽丽的分割线------------------------------------------------------------------------

尽量选择区分度高的列作为索引
比如 id 每条数据都不一样,这是最好的索引
但性别  可以说是50%的数据都一样,这种索引的效果不大,和没有没什么区别
最适合做索引的字段     这一字段如果   数值平均在0.1以下,也就是说    比如:类型字段   超过10个类型以上,并且数据量平均,则适合做索引

----------------------华丽丽的分割线-------------------------------------------------------------------------

索引类型  Btree   和  md5签名

Btree 各种查询都支持, md5 不支持范围查询

----------------------华丽丽的分割线---------------------------------------------------------------------------------

综合考虑查询和排序

a=1 and b=2 order by c
有利于排序的索引
(a,c)
(b,c)
(a,b,c) mysql有限选择
mysql会自动查询最有利的索引   order by c其实已经是在 a和b索引都执行之后的结果集里面去排序,效率很高

-----------------------华丽丽的分割线------------------------------------------------------------------------------------------

查询索引,尽量保持列干净

to_char(time) = 1 不走索引
time = to_char(1) 走索引

查询条件一定要是纯粹的查询条件,不能添加公式和其他函数  这样才能使用索引

-----------------------华丽丽的分割线-----------------------------------------------------------------------------------------------

尽量使用join去代替多变查询和子查询

在oracle中多表查询和子查询的效率和join差不多
但在mysql中 join的效率比多表查询和子查询迅速的多

-----------------------华丽丽的分割线----------------------------------------------------------------------------------------------------

like % 这种查询,和范围查询是同样的效果
如果这样的字段放到索引的最前面,则后面的条件都不会走了

-----------------------华丽丽的分割线-----------------------------------------------------------------------------------------------------

必要时,符合索引要进行“补洞”
比如(a,b,c)索引
a=1 and c=2 这样的查询是走不了索引的
所以需要补洞
a=1 and b in (0,1) and c=2 进行补洞,这样就可以让查询速度提高



自己的总结,留于记录
0 0
原创粉丝点击