因为前缀索引问题导致mysql无法使用覆盖索引
来源:互联网 发布:ipad怎么下载软件 编辑:程序博客网 时间:2024/05/20 00:17
今天帮开发改写一个复杂的sql,具体sql就不列出剥离出核心sql类似如:select sum(xx) from a group by n1,n2,n3
并且n1字段定义为varchar(255) 实际存储的数据长度一般都是不超过10左右个字符长度的数字字符串 如01500060,另外有一个主键id为自增字段
当时 想建一个复合索引来测试一下看看索引如:
create index ind_winrecsta_id on a(n1(10),n2,n3 ,id);
之后执行:
desc select id from a group by n1,n2,n3
发现执行计划居然是:
1 | SIMPLE | a | ALL | ind_winrecsta_id | NULL | NULL | NULL | 368897 |
全表扫描,真的很伤心... ... 哭了几分钟后,突然想起来第一个字段是拿前10个字符做索引的,瞬间有种豁然开朗的赶脚。
然后屁颠屁颠的把原来的索引删除重建了一个:
create index ind_winrecsta_id on a(n1,n2,n3 ,id);
再看执行计划:
1 | SIMPLE | R | index | ind_winrecsta_id | ind_winrecsta_id | 790 | NULL | 368897 |Using index
默默的伤感中... ...
- 因为前缀索引问题导致mysql无法使用覆盖索引
- Mysql中的联合索引、前缀索引、覆盖索引
- MySQL前缀索引导致的慢查询
- 限制索引导致索引无法被使用
- 关于mysql中由于类型转换导致索引无法使用的问题
- mysql 前缀索引
- 认识mysql前缀索引
- MySQL 前缀索引
- Mysql前缀索引
- mysql前缀索引
- mysql前缀索引
- MYSQL前缀索引
- mysql前缀索引
- Mysql前缀索引
- mysql覆盖索引
- Mysql覆盖索引
- MySQL覆盖索引
- mysql覆盖索引
- 程哥给我上了一堂课
- 机器学习之传统贝叶斯
- 完成端口在MSDN中的专题翻译
- hive的几种文件格式
- 《Unity3D大风暴之入门篇(海量教学视频版)》
- 因为前缀索引问题导致mysql无法使用覆盖索引
- GetKeyState和GetAsyncKeyState的区别
- UVA 10755 - Garbage Heap(三维子矩阵最大和)
- cocos2d-x游戏发布交叉编译成安卓apk(一)环境搭建
- hdu 1087 Super Jumping! Jumping! Jumping!(LIS)
- PDP附着和PDP激活的区别
- POJ 1837 Balance (DP)
- hdu 4691 Front compression(后缀数组)
- unbunt系统安装Nginx