|
今天在墨天轮社区 看到一个题目,对于以下SQL,如何建立索引比较高效? 假设满足条件的记录有很多。
看到这个题目时,我的第一反应是在条件列或SELECT列上建立索引,但实际上不是这样的。请看如下解析
对于过滤条件返回大量数据的情况下,单纯通过过滤条件的索引很难有效过滤数据,还会造成回表开销过大;
因此需要将排序列加入到索引最后一列中,这样优化器会根据查询出的结果直接获得排序并积累到需要的20行记录后就停止,因此排序列在最后的索引建立方式比较高效。
答案如下图所示
合作电话:010-64087828
社区邮箱:greatsql@greatdb.com