Получите ответ STRING от restTemplate.put

Для эффективности 500 записей, вероятно, не проблема, но если у вас есть миллионы записей, может быть выгодно использовать предложение WHERE для выбора следующей страницы:

SELECT *
FROM yourtable
WHERE id > 234374
ORDER BY id
LIMIT 20

«234374» Вот идентификатор последней записи из предыдущей страницы, которую вы просмотрели.

Это позволит использовать индекс для идентификатора для поиска первой записи. Если вы используете LIMIT offset, 20, вы можете обнаружить, что он становится все медленнее и медленнее, когда вы переходите к концу. Как я уже сказал, это, вероятно, не имеет значения, если у вас всего 200 записей, но это может повлиять на большие результирующие наборы.

Еще одно преимущество этого подхода состоит в том, что если данные изменяются между вызовами, вы не пропустят записи или не получат повторную запись. Это связано с тем, что добавление или удаление строки означает, что смещение всех строк после ее изменения. В вашем случае это, вероятно, не важно - я думаю, ваш пул объявлений не меняется слишком часто, и в любом случае никто не заметит, если они получат одно и то же объявление дважды подряд, но если вы ищете «лучший способ», то это еще одна вещь, которую следует иметь в виду при выборе того, какой подход использовать.

Если вы хотите использовать LIMIT со смещением (и это необходимо, если пользователь переходит непосредственно на страницу 10000 вместо пейджинга через страницы один за другим), то вы можете прочитать эту статью о методах поиска в конце строки , чтобы повысить производительность LIMIT с большим смещением.

13
задан Alexandre 4 June 2013 в 08:06
поделиться