首页
学习
活动
专区
圈层
工具
发布

mysql前缀索引的索引选择性

mysql前缀索引的索引选择性 一....基础概念 在mysql中建立前缀索引的意义在于相对于整列建立索引,前缀索引仅仅是选择该列的部分字符作为索引,减少索引的字符可以节约索引空间,从而提高索引效率,但这样也会降低索引的选择性 关于索引的选择性...索引的选择性越高则查询效率越高,因为选择性高的索引可以让MySQL在查找时过滤掉更多的行。...注意事项 ① 前缀索引是一种能使索引更小,更快的有效办法,但另一方面也有其缺点:mysql无法使用其前缀索引做ORDER BY和GROUP BY,也无法使用前缀索引做覆盖扫描 ② 要明确使用前缀索引的目的与优势...: .大大节约索引空间,从而提高索引效率 .对于 BOLB 、 TEXT 或者很长的 VARCHAR 类型的列,必须使用前缀索引,因为 MySQL 不允许索引这些列的完整长度 ③ 前缀索引会降低索引的选择性

85320

这个 MySQL 索引选择性有点意思!

今天松哥就来和大家聊一聊 MySQL 里边的这个前缀索引。...这有点类似于 Oracle 中对字段使用 Left 函数来建立函数索引,只不过 MySQL 的这个前缀索引在查询时是内部自动完成匹配的,并不需要使用 Left 函数。...索引的选择性越高则查询效率越高,因为选择性高的索引可以让 MySQL 在查找时过滤掉更多的行。 那有小伙伴要问了,是不是选择性越高的索引越好呢?当然不是!...索引选择性最高为 1,如果索引选择性为 1,就是唯一索引了!这个时候虽然性能最好,但是也是最费空间的,这不符合我们创建前缀索引的初衷。...松哥这里使用的数据样例是 MySQL 自己提供的数据样例,SQL 脚本下载链接:https://downloads.mysql.com/docs/world_x-db.zip。

1.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于mysql 索引自动优化机制: 索引选择性(Cardinality:索引基数)

    Mysql有自己内部自动优化机制, 但有些自动优化机制可能不是最优的。这时候就需要人工去干预。 比如长期不优化表,Mysql判断出索引不优,就会不使用索引。...可能是主键索引会比普通index更快,所以mysql最后选择了数据量跟大的id索引。     那么,如何解决这个问题呢?      ...索引选择性是不重复的索引值也叫基数(cardinality)表中数据行数的比值,索引选择性=基数/数据行,基数可以通过“show index from 表名”查看。   ...高索引选择性的好处就是mysql查找匹配的时候可以过滤更多的行,唯一索引的选择性最佳,值为1。...4、关于 mysql 索引优化与使用请见: 由浅入深探究mysql索引结构原理、性能分析与优化 http://my.oschina.net/leejun2005/blog/73912

    3K80
    领券