浅谈mysql limit的性能问题

          我们都知道在mysql中使用limit分页,当limit后的offset很大时会有性能问题,

          例如limit 10000,30

          它会取出前10030条数据,然后舍弃前10000条,有点儿类似es的深分页问题。

          例如我们写一个sql

          select * from user limit 10000,30

        性能不如以下写法

       select  a.* from user a

       left join (select id from user limit 10000,30) b

       on a.id = b.id 

      那么两者的区别在哪儿呢?

      其实第二种写法主要就是减短了从数据到聚簇索引的时间。至于聚簇索引的相关知识大家可以去查一下资料,说白了聚簇索引就是一级索引,而像我们平常自己所建的什么唯一索引,全文索引则通常称为二级索引,需要回表,性能会差。

     pageHelper中的分页原理就是Limit,所以在数据量很大时会有性能问题,慎用!!! 

发布了91 篇原创文章 · 获赞 13 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_41751625/article/details/105623222