Проблема при создании индекса по таблице - PullRequest
0 голосов
/ 23 марта 2011

У меня есть вопрос по индексированию столбца, и вот он

У меня есть таблица с 3 столбцами типа данных, как показано ниже.

VARCHAR(255) --- Have many duplicates (say 10% unique records)
VARCHAR(64) --- Have many duplicates (say 10% unique records)
VARCHAR(MAX) --- Surely can’t choose this COL as key col for index

Если я хочу создать индекс для этой таблицы, как мне это сделать в этой ситуации?

ИЛИ

Должен ли я создать столбец автоинкремента?

Не могли бы вы помочь мне в этом.

Спасибо, Рахул

1 Ответ

0 голосов
/ 23 марта 2011

Вы можете создать индекс для каждого столбца, если хотите, не имеет значения, имеют ли они уникальные данные или нет.

Индексы используются для более быстрого поиска информации, поиска и фильтрации по индексированному столбцу.

Индекс также можно применять к комбинации столбцов (полей).

Таким образом, вы можете добавить индекс для field1, другой для field2, другой для field3, другой для (field1, field3)) комбинация и т. д. Что лучше, зависит от того, какое использование вы планируете сделать за столом.

Если, с другой стороны, вы хотите создать Primary Key, а не index:

Выбор столбца для первичного ключа:

  1. столбец должен однозначно идентифицировать каждую строку (поэтому вы не можете использовать field1 или field2, которые имеют дубликаты).

  2. Лучше, если он будет как можно меньше, поэтому при использовании в качестве внешнего ключа в других таблицах он не занимает много места (и по другим причинам).Итак, вам лучше не использовать field3 - хотя вы можете сделать это в тестовой базе данных или небольшой, или если вас не волнует производительность.

Итак, да, мой совет будетдобавить еще один автоматически увеличенный столбец и использовать его в качестве первичного ключа.


Что касается уникальных индексов:

При создании первичного ключа также создается уникальный индекс для поля..

Вы также можете (или без первичного ключа) создать уникальный индекс для поля (или их комбинации).В вашем случае, когда поля 1 и 2 имеют дубликаты, вы либо создаете уникальный индекс для поля 3, либо добавляете автоматически увеличенное поле и уникальный индекс для этого.

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