码迷,mamicode.com
首页 > 数据库 > 详细

MySQL索引之前缀索引和索引选择性

时间:2015-11-06 12:44:04      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

有时需要索引很长的字符列,它会使索引变大而且变慢。一个策略就是模拟哈希索引。但是有时这也不够好,那?

通常可以索引开始的几个字符,而不是全部值,以节约空间并得到好的性能。这使索引需要的空间变小,但是也会降低选择性。索引选择性是不重复的索引值 和表中所有行的比值。高选择性的索引有好处,因为它使mysql在查找匹配的时候可以过波掉更多的行。唯一索引的选择率为1,为最佳值。

如果索引BLOG和TEXT列,或者很长的varchar列,就必须定义前缀索引,因为mysql不允许索引它们的全文化。

可以在同一个查询中针对许多不同的前缀长度进行计算,选择选择性好的。 【Linux公社 http://www.linuxidc.com 】

(用LEFT函数,left(city,4))

添加前缀索引

mysql>alter table test.test add key (city(7));

前缀索引能很好地减少索引的大小及提高速度,但是mysql不能在order by 和group by查询中使用前缀索引,也不能把它们用伯覆盖索引。

有时后缀索引也挺有用,例如查找某个域名的所有电子邮件地址。mysql不支持反向索引,但是可以把反向字符串保存起来,并且索引它的前缀。可以用触发器维护这种索引。

MySQL索引之前缀索引和索引选择性

标签:

原文地址:http://www.cnblogs.com/langtianya/p/4941932.html

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