返回信息流table person id(int),age(int),name(varchar),height(int);
表中数据非常多 千万级,id可以重复,如何优化下面的查询语句呢?
包括但不限于添加索引。
select * from person
where id=123 and age>18
order by height;
这是一条镜像帖。来源:北邮人论坛 / database / #10086同步于 2016/5/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
[问题]mysql查询优化
a1258328300
2016/5/31镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
考虑到了,但是联合索引这个结果还是需要进行排序,不知道性能怎样。。。
自增主键其实是有的,不过对这个查询优化没有什么意义,就没写出来。
还有我想问下如果对height添加索引是不是省了排序这个步骤了。。。
【 在 liangpeili 的大作中提到: 】
: id和age加个联合索引,考虑加个自增主键吧
问一下 如果使用 id 、height、age建一个联合索引,是否可以不用对结果排序了???
【 在 liangpeili 的大作中提到: 】
: id和age加个联合索引,考虑加个自增主键吧
【 在 a1258328300 的大作中提到: 】
: 问一下 如果使用 id 、height、age建一个联合索引,是否可以不用对结果排序了???
对这三个字段加一个联合索引会加快,但是你前面是select * ,还是会回表取数据。考虑下你需要哪个字段,然后把这个字段和前三个一起联合索引,就不用回表取数据了。