需求:查询19年以后发布的商品
数据库表结构如下:
目前数据量:264751
优化前执行时间:0.790s
优化后执行时间:0.467s
select id,no,title,cart_title,cid_name from tb_item
where id >= (select id from tb_item
where update_time > 1571392138000 LIMIT 100000,1
) LIMIT 10
原理:采用覆盖索引(covering index ,或称为索引覆盖)即从非主键索引中就能查到的记录,而不需要查询主键索引中的记录,避免了回表的产生减少了树的搜索次数,显著提升性能。把查询条件,转移回到主键索引树,就可以减少回表次数,查询条件改为主键id,之前sql的update_time就抽到子查询!
MySQL高级第九篇:覆盖索引和索引条件下推等相关策略_mysql索引覆盖和索引下推-CSDN博客
MySQL深分页,limit 100000,10 优化_mysql limit 100000-CSDN博客