Задать вопрос
swanrnd
@swanrnd
Издатель HTML5 игр

Нужен ли индекс или нет?

Имеем:
id, uid, pid.

100к uid и для каждого uid 50 pid.

Выбирае WHERE uid=@uid and pid=@pid;
Какой индекс лучше?
1) только uid
2) uid+pid

Причина почему я спрашиваю маленькие таблицы не стоит забивать индексами.
  • Вопрос задан
  • 376 просмотров
Подписаться 3 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 4
romy4
@romy4
Exception handler
в принципе, id тут вобще не нужен. uid можно оставить первичным ключом. при такой выборке индекс для pid лишний.
Ответ написан
Комментировать
@res2001
Developer, ex-admin
1.если есть возможность - кластерный индекс по id
2. отдельные индексы для uid и pid
Ответ написан
@pihel
Sql, Oracle, pl/sql, BI, ETL, php, olap
Если преобладают чтения над записью, то 2 вариант предпочтительней.
Если записи вставляются пачками и изредка, то можно отключать индекс , а потом их ребилдить.
Если запись преобладает над чтением, то возможно индексы будут только мешать.

Еще как вариант можно hash партиционировать по uid. Тогда не потеряется скорость ни чтения, ни записи.
Ответ написан
Комментировать
igruschkafox
@igruschkafox
Специалист по сопровождению БД MS SQL
2 вариант
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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