2

我正在尝试尽可能有效地进行分页。目前,我使用一个拥有超过 500 万条记录的数据库。

我尝试使用 LIMIT pageSize、startIndex,如下所示: Select (a.id) From Article a ........LIMIT 50, 0 在这里,pageSize 为 50,startIndex = 0。

但这只有在您不深入阅读页面时才有用。解决方案是不使用 startIndex,而只使用 pageSize:

Select (a.id) From Article a ........ORDER BY a.id LIMIT 50

下一页将是: SELECT (a.id) FROM Article a WHERE a.id > lasId ORDER BY a.id

但是没有startIndex,就只能往前走,只能往后退一步。

有没有更好的方法在 Java 和 Mysql 中进行分页?

4

2 回答 2

0

你总是可以这样做:

int pageNum = ?;
int pageLength = 50;

String query = String.format(
    "SELECT ... LIMIT %d, %d",
    pageNum * pageLength,
    pageLength
);
于 2013-02-04T20:28:20.280 回答
-1

阅读这篇文章,了解在 MySQL 中进行分页的正确方法(使用大型数据集):http ://www.xarg.org/2011/10/optimized-pagination-using-mysql

于 2013-02-04T20:27:48.540 回答