有没有接做网站私活的平台,软件开发公司的组织架构,网站系统性能定义,app定制开发的价格今天看到一个问题。 MySQL分页查询慢怎么办#xff1f; 第一反应是用limit限制返回的条数。 比如
select * from table order by idlimit 10, 100;实际上我们限制的只是返回的条数是100#xff0c;并不是查询时就从第10条开始获取数据。 所以实际上MySQL会从第0条开始查询 第一反应是用limit限制返回的条数。 比如
select * from table order by idlimit 10, 100;实际上我们限制的只是返回的条数是100并不是查询时就从第10条开始获取数据。 所以实际上MySQL会从第0条开始查询得到10100110条数据然后放弃掉前面10条数据返回100条数据。 所以在数据量越来越大分页的起始条数越来越靠后时耗时越来越长。
那如何优化呢
记录起点放弃使用offset
即
select * from table order by id where id 10 limit 100;根据索引直接定位到10数据所在叶子节点取范围100个叶子节点的行数据返回。