oracle index для строкового столбца - влияет ли формат данных на качество индекса? - PullRequest
0 голосов
/ 01 января 2011

У нас есть следующий тип столбца «Уникальный идентификатор» для многих таблиц в базе данных (Oracle). Это строка следующего формата

<randomnumber>-<ascendingnumber>-<machinename>

Итак, у нас есть нечто подобное

U1234-12345-NBBJD
U1234-12346-NBBJD
U1234-12347-NBBJD
U1234-12348-NBBJD
U1234-12349-NBBJD

Значение UID уникально, у нас есть уникальный индекс по ним. Является ли следующий формат более эффективным, чем описанный выше для сканирования индекса?

NBBJD-U1234-12345
NBBJD-U1234-12346
NBBJD-U1234-12347
NBBJD-U1234-12348
NBBJD-U1234-12349

1 Ответ

2 голосов
/ 01 января 2011

На самом деле нет хорошего ответа на это, поскольку это зависит от того, как вы запрашиваете данные. Если вы обычно пытаетесь найти конкретные записи по UNIQUE_ID, это не имеет значения. Однако, если вы просматриваете записи по machinename, вы, вероятно, захотите это в начале столбца.

Еще лучше, сделайте каждое из этих значений отдельным столбцом и получите действительно синтетический первичный ключ, основанный на последовательности или GUID. Таким образом, порядок данных не является проблемой вообще. Позже ты поблагодаришь себя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...