Разбиение на страницы 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?
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