【发布时间】:2019-07-17 19:31:45
【问题描述】:
我尝试进行有效的分页。我有很多表有很多记录。最大的一个目前有大约 40000 条记录,并且将来会增加。这些表具有这样的结构(例如):
order | type | item | price | quantity | packingunit | totalquantity
表格可以按所有显示的列排序,当然它们都有一个 ID,它也是主键和自动增量。
问题是,随着数据量的增加,查询会越来越慢。目前查询看起来像(例如):
... LIMIT 10000, 25
我想摆脱 OFFSET 并找到一种更快的方法来获取每个页面的结果。
我阅读了一些关于此问题的博客以及关于 stackoverflow 的文章。有一些方法可以使用
实现高效的分页... WHERE id > 10000 LIMIT 25
但这仅在您按 ID 对表格进行排序时才有效。正如我所提到的,我的表格可以按每一列排序。我考虑过读取缓存中的 ID(排序后)并始终查询要在被调用页面上显示的 25 个 ID,但这似乎也是一种不太有效的方法。
有没有人有想法,如何解决这个问题?
【问题讨论】:
标签: mysql pagination paging