多列索引
来源:互联网 发布:linux mv命令 编辑:程序博客网 时间:2024/06/10 05:12
索引可以创建在两列或者多列上。
假设存在tbinvestrecord投资记录表,通过限定投资会员编号mid(member id)和投资项目编号pid(project id)来筛选符合条件的记录:
select * from tbinvestrecord where mid = 117 and pid = 41;
对应的执行计划:
为其加上一个多列索引:
alter table tbinvestrecord add index pid_mid (pid,mid);
再来看执行计划:
可见使用pid_mid索引后,估计读取的行数减少。
现在再创建一个索引,包含的字段还是pid和mid,只是把顺序调换一下:
alter table tbinvestrecord add index mid_pid (mid,pid);
再次查看执行计划:
为什么会选择pid_mid,而不是mid_pid?
对比一下pid和mid这两列的选择性值:
可见pid的唯一值更多,选择性更好,所以把pid放在最左侧。
通常情况下,在不考虑排序,而是单纯的用where限定筛选条件时,把选择性好的一列放在最左侧是个不错的选择。
参考资料:
《Effective MySQL之SQL语句最优化》
0 0
- 多列索引
- 多列索引实验
- Mysql多列索引
- 多列索引
- MySQL多列索引
- mysql多列索引
- 多列索引实验
- 单列索引和多列索引
- 单列索引和多列索引
- mysql 单列索引与多列索引
- 单列索引和多列索引
- 正确理解Mysql的列索引和多列索引
- 正确理解Mysql的列索引和多列索引
- 正确理解MySQL中列索引和多列索引
- Mysql的列索引和多列索引
- 正确理解Mysql的列索引和多列索引
- 正确理解Mysql的列索引和多列索引
- mysql 多列索引疑问
- Linux下必须知道的11个网络命令
- 一杯咖啡的苦涩
- 类集框架笔记1
- 【Eclipse】性能优化器,让你的Eclipse飞起来!
- 码字必备:18 款优秀的 Markdown 写作工具
- 多列索引
- 关于 x &= (x – 1) -c 言语学习笔记之一
- C 回调函数
- 简单扑克牌游戏
- Bootstrap的aria-label和aria-labelledby
- 斯坦福机器学习课程笔记week4&5-神经网络
- 第九章(4)-事件访问器-学习笔记
- java21.IO操作------FileReader与FileWriter
- 微支付jsapi巨坑 微支付 jsapi java