-Не делай-то-
Ой, подождите, это не полезно, это просто так:)
Разделение данных таким способом МОЖЕТ привести к повышению производительности.Но они также приводят к другим затратам:
- Запросы, которые должны охватывать все три таблицы, становятся более сложными
- Ваша схема становится более загроможденной
- Легче делать ошибки
- Трудно обеспечить ссылочную целостность
- Вам может понадобиться включить представление для объединения трех таблиц
Скорее всего, вам гораздо лучше с индексом, в котором есть k
.И в зависимости от того, как вы запрашиваете данные, k
может быть первым полем в этом индексе.Когда вы указываете k = ?
, ему просто нужно выполнить очень быструю проверку индекса, а затем вы смотрите только на соответствующую часть таблицы.И, если индекс равен clustered
, данные даже физически хранятся в таком порядке.
Я бы настоятельно рекомендовал использовать индексы таким способом, прежде чемразделение ваших данных.Это оптимизация с затратами, поэтому к ней следует подходить, когда она может быть показана как необходимая, а не как защитная сетка на ранней стадии проектирования.