mysql 确定前缀索引长度方法
来源:互联网 发布:门禁控制器编程 编辑:程序博客网 时间:2024/06/07 06:14
应用场景:
数据库里有个地址(address)字段,类型为varchar(100),业务决定了要经常根据address来进行查询。
确定选择性:
- SELECT count(DISTINCT(address))/count(*) AS Selectivity FROM info;
- +-------------+
- | Selectivity |
- +-------------+
- | 0.8745 |
- +-------------+
<address>选择性很好,但是长度为100,对整个字段建立索引显然不合适,可以考虑建立前缀索引,例如<left(address,5)>,看看其选择性:
- SELECT count(DISTINCT(left(address,5)))/count(*) AS Selectivity FROM info;
- +-------------+
- | Selectivity |
- +-------------+
- | 0.5981 |
- +-------------+
选择性还不错,但和0.8745相比还是太低,所以我们可以将前缀长度增加到10,再看看选择性:
- SELECT count(DISTINCT(left(address,10)))/count(*) AS Selectivity FROM info;
- +-------------+
- | Selectivity |
- +-------------+
- | 0.8239 |
- +-------------+
和0.8745已经很接近了,但是索引长度只有10,所以就可以决定建立前缀索引了。
前缀索引兼顾索引大小和查询速度,但是其缺点是不能用于ORDER BY和GROUP BY操作,也不能用于Covering index(即当索引本身包含查询所需全部数据时,不再访问数据文件本身)。
0 0
- mysql 确定前缀索引长度方法
- mysql 确定前缀索引长度方法
- mysql 确定前缀索引长度方法
- MySQL前缀索引长度方法
- 一种可衡量的确定MySQL前缀索引长度方法
- mysql 前缀索引
- 认识mysql前缀索引
- MySQL 前缀索引
- Mysql前缀索引
- mysql前缀索引
- mysql前缀索引
- MYSQL前缀索引
- mysql前缀索引
- Mysql前缀索引
- mysql前缀索引及其选择
- MySql之索引长度
- mysql索引长度
- MySQL前缀索引和索引选择性
- 贪心算法之活动分配问题
- HTML DOM节点的属性获取
- ffplay控制音量方法
- linux文件函数-write
- Unity3D 4.6.3中射线的用法
- mysql 确定前缀索引长度方法
- hihoCoder 1089 : 最短路径·二:Floyd算法
- iOS开发系列--通知与消息机制
- 关于Qt5.4.0的中文翻译不“完整”的解决方法
- windows套接字编程
- hihoCoder 1093 : 最短路径·三:SPFA算法
- 草根开发者的野心:用10秒小手游征服东南亚与美国市场
- 关于LATEX
- Redis和Memcache的区别分析