Подтвердить что ты не робот

База данных: первичный ключ, кластерный или некластерный

Я создаю базу данных на SQL Server 2008,

CREATE TABLE Users
(
    U_Id INT NOT NULL
    FirstName VARCHAR(50) NOT NULL,
    LastName VARCHAR(50) NOT NULL,
    Email VARCHAR(200)
    Password VARCHAR(50)
)

Я хочу сделать U_Id основным ключом. Я хотел бы спросить, в чем разница между

 CONSTRAINT pk_UserID PRIMARY KEY (U_Id)

это

 CONSTRAINT pk_UserID PRIMARY KEY CLUSTERED (U_Id)

и этот

CONSTRAINT pk_UserID PRIMARY KEY NONCLUSTERED (U_Id)

Когда использовать каждый?

Я прочитал статью, но мне все еще не ясно. Может кто-нибудь дать мне краткое объяснение?

4b9b3361

Ответ 1

Следующее утверждение:

CONSTRAINT pk_UserID PRIMARY KEY (U_Id)

То же, что и этот:

CONSTRAINT pk_UserID PRIMARY KEY CLUSTERED (U_Id)

Физическую плотность данных таблицы можно упорядочить только с помощью один индексов, и по умолчанию этот индекс используется для первичного ключа (единственное ограничение первичного ключа всегда поддерживается индексом).

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

CONSTRAINT pk_UserID PRIMARY KEY NONCLUSTERED (U_Id)

И затем создайте кластеризованный индекс с помощью:

CREATE CLUSTERED INDEX ix_Email ON Users (Email);