какой столбец я должен индексировать - PullRequest
0 голосов
/ 12 февраля 2012

У меня есть таблица с 3 столбцами:

  • int UserID
  • datetime WorkDate
  • string WorkDetail

У каждого пользователя будет один WorkDetail на WorkDate. Я использую L2S, и мое предложение where соответствует UserID и WorkDate следующим образом:

where t.UserID == TheUserID && t.WorkDate.Date == TheDate.Date

Должен ли я сохранить порядок параметра where как есть? Должен ли я индексировать дату или userID?

Спасибо.

Ответы [ 4 ]

1 голос
/ 12 февраля 2012

Вы действительно должны индексировать как дату, так и идентификатор пользователя.Как минимум, просто индексируйте идентификатор пользователя.

0 голосов
/ 12 февраля 2012

Если у каждого пользователя должен быть только один WorkDate, сделайте его первичным ключом в базе данных. Это обеспечит целостность данных и обеспечит индекс за один раз.

0 голосов
/ 12 февраля 2012

Если вы говорите, что у каждого пользователя будет 1 деталь для даты, то это должен быть уникальный индекс (userId, workDate)

0 голосов
/ 12 февраля 2012

Я бы пошел на индекс UserID на данный момент.

Если вы найдете производительность лучше с дополнительным индексом даты, продолжайте и создайте его.

Ничто не мешает вам добавитьдополнительный индекс даты в будущем, если вам нужно искать по дате независимо от пользователя.

...