mysql前缀索引
来源:互联网 发布:淘宝四大化妆刷店 编辑:程序博客网 时间:2024/05/01 22:50
当要索引字段长度较长,不利于放入索引时,使用前缀索引。可以为索引字段指定长度,即在该字段前n个字符上生成索引。
那么具体取多少个字符做索引?
1.计算该字段选择性 = a
2.分别计算该字段取n个字符的选择性
3.当n与a接近,或n增大对a影响较小时,记得到最优的n
实例:
表house_rent,title字段没有索引,使用选择性计算方法计算前缀个数
//查询分析explain SELECT * FROM `house_rent` WHERE title like "宣庆街%";
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE house_rent ALL NULL NULL NULL NULL 830 Using where
//计算title字段选择性select count(distinct title) / count(*) from house_rent;
//结果
0.7114
//计算不同前缀值下title字段选择性//3个字前缀select count(distinct left(title,3)) / count(*) from house_rent;
//结果
0.2698
//设定不同前缀字段的选择性比例
字段个数比例30.269840.338350.427160.508570.544480.570890.5825//由表可见,当设定字符数为8后,再增加字符结果比例增加已呈明显下降趋势。此时虽距离0.7还有差距,但是再增加字符收效已经很小。所以此时就选择8作为前缀数
//建索引alter table `house_rent` add key title( title(8))
//测试结果
explain SELECT * FROM `wa_fenlei_house_person_rent` WHERE title like "宣庆街%"
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE house_rent ref title title 27 const 1 Using where
//结果从830行缩短为1行
0 0
- mysql 前缀索引
- 认识mysql前缀索引
- MySQL 前缀索引
- Mysql前缀索引
- mysql前缀索引
- mysql前缀索引
- MYSQL前缀索引
- mysql前缀索引
- Mysql前缀索引
- mysql前缀索引及其选择
- MySQL前缀索引长度方法
- MySQL前缀索引和索引选择性
- mysql前缀索引的索引选择性
- MySQL前缀索引和索引选择性
- MySQL索引之前缀索引和索引选择性
- MySQL索引之前缀索引和索引选择性
- Mysql中的联合索引、前缀索引、覆盖索引
- MySQL索引之前缀索引和索引选择性
- MySQL创建用户与授权方法
- 使用 Spring Boot 快速构建 Spring 框架应用
- MongoDB——第五天 主从复制
- 提高读取文件的效率小试
- vs2015 配置 opencv3.0 和 zbar
- mysql前缀索引
- MongoDB——第六天 分片技术
- adb中文乱码解决
- selenium之 autoit命令行参数
- 二、Android 数据链接的动态分析
- 全同态加密算法
- cookie存储
- MongoDB——第七天 运维技术
- ubuntu 安装php7 mongodb扩展