У меня большая таблица сообщений. Что я хочу сделать, чтобы улучшить производительность и время загрузки страницы, чтобы получать последние опубликованные сообщения, скажем, 20 последних сообщений.
Когда пользователи прокрутят вниз, предыдущие 20 сообщений будут добавлены в DOM благодаря JS.
Таким образом, если у меня всего 40 сообщений, будут отображаться сообщения от 40 до 20. Пользователь будет прокручивать страницу вниз, затем к DOM будет добавлено от 20 до 0 сообщений.
Проблема в том, что если я сохраню самый низкий идентификатор из моих загруженных сообщений и использую запрос, подобный этому:
SELECT * FROM messages ORDER BY id DESC LIMIT 20,20 (<= is the lowest offset of loaded messages)
Я прочитал, что MySQL сначала извлечет каждую строку таблицы, а затем просто вернет нужные мне записи, что, я думаю, займет довольно много времени, если моя таблица сообщений будет содержать 500 000 записей.
Какой самый эффективный и быстрый способ сделать это?