possible_keys、key、key_len都为null,可见在表上是没有可用索引的
计算区分度,越接近1区分度越好,应该放到联合索引的左侧
建好联合索引之后的explain:
翻页越多,速度越慢,进一步优化:
优化的前提:comment_id是商品评论表的主键,且有覆盖索引
原理:
利用覆盖索引,取出主键comment_id,再进行排序,取出所需数据,之后再同评论表通过主键来排序,取出其他字段。这种方式的数据开销是:索引的io + 索引分页后的结果,也就是这15行数据对应表的io,比优化前的io节省很多。优点在于:每次翻页消耗的资源和时间基本相同。
适应场景:
当查询和排序字段,也就是where子句和order by子句涉及的字段有对应覆盖索引的情况下。并且中间结果集很大的时候也适应这种情况