Индекс — это структура данных на диске, основанная на таблицах и представлениях. Индексы делают поиск данных быстрее и эффективнее, в большинстве случаев. Однако перегрузка таблицы или представления индексами может неприятно повлиять на производительность других операций, таких как вставки или обновления.
-
Индексирование — это новая функция в структуре сущностей, где вы можете повысить производительность своего приложения Code First, сократив время, необходимое для запроса данных из базы данных.
-
Вы можете добавить индексы в свою базу данных, используя атрибут Index , и переопределить параметры по умолчанию Unique и Clustered , чтобы получить индекс, наиболее подходящий для вашего сценария.
Индексирование — это новая функция в структуре сущностей, где вы можете повысить производительность своего приложения Code First, сократив время, необходимое для запроса данных из базы данных.
Вы можете добавить индексы в свою базу данных, используя атрибут Index , и переопределить параметры по умолчанию Unique и Clustered , чтобы получить индекс, наиболее подходящий для вашего сценария.
Давайте посмотрим на следующий код, в котором атрибут Index добавлен в класс Course для CourseID.
public partial class Course { public Course() { this.Enrollments = new HashSet<Enrollment>(); } [Index] public int CourseID { get; set; } public string Title { get; set; } public int Credits { get; set; } public byte[] VersionNo { get; set; } public virtual ICollection<Enrollment> Enrollments { get; set; } }
Ключ, созданный выше, не является уникальным, не кластеризованным. Для переопределения этих значений по умолчанию доступны перегрузки —
-
Чтобы сделать индекс кластеризованным, вам нужно указать IsClustered = true.
-
Аналогично, вы также можете сделать индекс уникальным, указав IsUnique = true.
Чтобы сделать индекс кластеризованным, вам нужно указать IsClustered = true.
Аналогично, вы также можете сделать индекс уникальным, указав IsUnique = true.
Давайте посмотрим на следующий код C #, где индекс кластеризован и уникален.
public partial class Course { public Course() { this.Enrollments = new HashSet<Enrollment>(); } [Index(IsClustered = true, IsUnique = true)] public int CourseID { get; set; } public string Title { get; set; } public int Credits { get; set; } public byte[] VersionNo { get; set; } public virtual ICollection<Enrollment> Enrollments { get; set; } }
Атрибут индекса можно использовать для создания уникального индекса в базе данных. Однако это не означает, что EF сможет рассуждать об уникальности столбца при работе со связями и т. Д. Эта функция обычно упоминается как поддержка «уникальных ограничений».