swanrnd
@swanrnd
Издатель HTML5 игр

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

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

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

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

Причина почему я спрашиваю маленькие таблицы не стоит забивать индексами.
  • Вопрос задан
  • 366 просмотров
Пригласить эксперта
Ответы на вопрос 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 вариант
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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