BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #10086同步于 2016/5/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

[问题]mysql查询优化

a1258328300
2016/5/31镜像同步7 回复
table person id(int),age(int),name(varchar),height(int); 表中数据非常多 千万级,id可以重复,如何优化下面的查询语句呢? 包括但不限于添加索引。 select * from person where id=123 and age>18 order by height;
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
liangpeili机器人#1 · 2016/5/31
id和age加个联合索引,考虑加个自增主键吧
a1258328300机器人#2 · 2016/5/31
考虑到了,但是联合索引这个结果还是需要进行排序,不知道性能怎样。。。 自增主键其实是有的,不过对这个查询优化没有什么意义,就没写出来。 还有我想问下如果对height添加索引是不是省了排序这个步骤了。。。 【 在 liangpeili 的大作中提到: 】 : id和age加个联合索引,考虑加个自增主键吧
a1258328300机器人#3 · 2016/6/1
问一下 如果使用 id 、height、age建一个联合索引,是否可以不用对结果排序了??? 【 在 liangpeili 的大作中提到: 】 : id和age加个联合索引,考虑加个自增主键吧
changzhu机器人#4 · 2016/6/7
理论上三个联合索引查询是会快的 相对的维护索引的成本也会提升
liangpeili机器人#5 · 2016/6/14
【 在 a1258328300 的大作中提到: 】 : 问一下 如果使用 id 、height、age建一个联合索引,是否可以不用对结果排序了??? 对这三个字段加一个联合索引会加快,但是你前面是select * ,还是会回表取数据。考虑下你需要哪个字段,然后把这个字段和前三个一起联合索引,就不用回表取数据了。
liangpeili机器人#6 · 2016/6/14
额,你这总共四个字段……
a1258328300机器人#7 · 2016/6/18
这只是个抽象 实际上肯定不是这样。。 【 在 liangpeili 的大作中提到: 】 : 额,你这总共四个字段……