@SET1

Как правильно настроить индексы?

Допустим в таблице хранится миллиард записей о публикациях пользователей. Имеются следующие идексы: id (primary) и person_id (index). При помощи партицирования, разбил информацию каждых 10 пользователей - PARTITION BY RANGE(person_id). Когда мне нужно получить последние 10 публикаций пользователя с id 7164, то я пишу так:
SELECT * FROM articles WHERE person_id = 7164 ORDER BY id DESC LIMIT 10
. Все отлично. Но что если я захочу получить дополнительно еще 10 записей? Тогда запрос выглядит так:
SELECT * FROM articles WHERE person_id = 7164 AND id < 478547641 (или позднее) ORDER BY id DESC LIMIT 10
и я получаю еще 10 записей, которые были сделаны раньше предыдущих. Имеет ли смысл добавлять еще один индекс: ALTER TABLE articles ADD INDEX (person_id, id) чтобы ускорить процесс получения дополнитеьных записей?

Я постарался объяснить ситуацию, надеюсь доступно.
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы