Задать вопрос
@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) чтобы ускорить процесс получения дополнитеьных записей?

Я постарался объяснить ситуацию, надеюсь доступно.
  • Вопрос задан
  • 120 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы