DaiZZZZZ
2019-09-01 22:01
采纳率: 14.3%
浏览 494

为什么 子查询用 覆盖索引+limit 扫描行数非常大。

内嵌查询 用覆盖索引+limit ,explain 的type是index,扫描行树非常大。
作为一个单独的查询语句,扫描行数就只扫描 limit 限制的条数。

嵌套查询

EXPLAIN SELECT
    * 
FROM
    ( SELECT id, db_id, warehouse_id, updated_at FROM salesorderskus ORDER BY db_id, warehouse_id, item_id LIMIT 20 ) t
    INNER JOIN salesorderskus ON t.id = salesorderskus.id 
    AND t.db_id = salesorderskus.db_id

图片说明

独立的查询语句

explain SELECT
    id,
    db_id,
    warehouse_id,
    updated_at 
FROM
    salesorderskus
ORDER BY
    db_id,
    warehouse_id,
    item_id 
    LIMIT 20

图片说明

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题