Разбиение на страницы Java MySQL



Я пытаюсь сделать пагинацию максимально эффективной.
В настоящее время я работаю с базой данных, которая насчитывает более 5 миллионов записей.



Я попробовал использовать LIMIT pageSize, startIndex, вот так:
Выберите (a.id) из статьи А........Предел 50, 0
Здесь размер страницы равен 50, а startIndex = 0.



Но это только хорошо, если вы не будете углубляться в страницы. Решением было не использовать startIndex, а только pageSize:



Выбрать (a.id) из статьи А........Заказать по a.id предел 50



Следующая страница будет:
Выберите (a.id) из статьи а, где a.id > lasId заказать по a.id



Но без startIndex можно идти только вперед и только один шаг назад.

Есть ли лучший способ сделать разбиение на страницы в Java и Mysql?

579   2  

2 ответов:

Прочитайте эту статью о правильных способах выполнения разбиения на страницы в MySQL (с большими наборами данных): http://www.xarg.org/2011/10/optimized-pagination-using-mysql

Вы всегда можете сделать это:

int pageNum = ?;
int pageLength = 50;

String query = String.format(
    "SELECT ... LIMIT %d, %d",
    pageNum * pageLength,
    pageLength
);

Comments

    Ничего не найдено.