码迷,mamicode.com
首页 > 其他好文 > 详细

索引最左前缀匹配原则

时间:2017-07-31 15:55:20      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:自动   查询   使用   缩小   原则   查找   一个   sql   bsp   

如果索引字符串的前面n个字符都不相同,那么最好不要索引整个数据列,二十索引前n个字符,这样可以节省大量空间。

如果在数据列a,b,c上建立了复合索引,索引中的数据行按照a/b/c次序排列,因此数据表会自动的按照a/b和a排列,即使指定了a,或者a和b的值,mysql也可以使用这个索引。

这个索引可以用于如下数据列的组合:

a,  b,c

a,b

a

Mysql不能利用这个索引搜索没有包含在最左前缀的内容。如按照b或者按照c来搜索,就不会使用这个索引。如果搜索给定a和c的数据,也不能使用这个索引。但是可以利用索引来查找匹配的a从而缩小搜索范围。如需增加索引,那么需考虑其是否为已添加索引的最左前缀,如果是,不用再添加。

【注】mysql执行查询操作时只能使用一个索引。如果有多个可用索引,则会选择最严格的一个(获得子集最小)的索引。

最左前缀:就是最左优先,如果建立了多列索引a_b_c(a,b,c)相当于建立了索引a;a,b;a,b,c。

索引最左前缀匹配原则

标签:自动   查询   使用   缩小   原则   查找   一个   sql   bsp   

原文地址:http://www.cnblogs.com/Lissssssssss/p/7263147.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!