Изменения документа Индексы
Редактировал(а) Alexandr Fokin 2024/04/29 13:39
<
>
отредактировано Alexandr Fokin
на 2020/04/25 13:36
на 2020/04/25 13:36
отредактировано Alexandr Fokin
на 2022/11/25 17:31
на 2022/11/25 17:31
Изменить комментарий:
Update document after refactoring.
Комментарий
-
Свойства страницы (3 изменено, 0 добавлено, 0 удалено)
-
Объекты (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Родительский документ
-
... ... @@ -1,1 +1,1 @@ 1 -Разработка.Базы данных.WebHome 1 +Разработка.Базы данных.Механизмы.WebHome - Теги
-
... ... @@ -1,0 +1,1 @@ 1 +Индекс|index|Full text search - Содержимое
-
... ... @@ -1,23 +1,47 @@ 1 +=== Основные тезисы: === 1 1 2 -**Основные тезисы:** 3 -1) Индексы ускоряют выборку данных из таблицы, но замедляют вставку новых данных. 3 +1) Индексы ускоряют выборку данных из таблицы, но замедляют вставку и редактирование (если изменяются столбцы задействованные хотя бы в одном индексе). 4 4 2) При создании индексов стоит учитывать: 5 -2.1) Как часто с данной таблицей будут производитсться операции чтения/записи. 6 -2.2) Какие конкретно запросы будут выполняться. (по каким полям будет идти поиск: WHERE, JOIN) 5 +2.1) Как часто с данной таблицей будут производиться операции чтения/записи. 6 +2.2) Какие конкретно запросы будут выполняться. (по каким полям будет идти поиск, соединение, группировка, сортировка: WHERE, JOIN) 7 +2.3) Предполагаемые размеры таблицы. 7 7 9 +---- 10 + 11 +==== Критерий - кластеризованный индекс ==== 12 + 8 8 Кластеризованный индекс 9 -Данный индекс напрямую определяет порядок строк в таблице. 10 -При вставке новой записи в таблицу рассчитывается значение кластеризованного инекса для новой строки, на основе которого выполняется вставка в коллекцию строк. Для таблицы может быть только 1 кластерезованный индекс. Обычно совпадает с первичным ключом. В таблице может отсутствовать кластеризованного индекса (стоки в естественном порядке набора данных). 14 +Данный индекс определяет порядок строк в таблице. 15 +При вставке новой записи в таблицу рассчитывается значение кластеризованного индекса для новой строки, на основе которого выполняется вставка в имеющийся набор строк. 16 +Для таблицы может быть только 1 кластеризованный индекс. Обычно совпадает с первичным ключом. Также в таблице может отсутствовать кластеризованного индекса (строки будут расположены в порядке их добавления). 11 11 12 -Не скластеризованный индекс18 +Некластеризованный индекс 13 13 Не влияет на физический порядок строк. Используется для оптимизации выборки данных. 14 14 21 +---- 15 15 16 16 Вопросы 17 17 1) Оценка состояния индексов. Поддержка индексов в актуальном состоянии. 18 -К акимспособом можноизмеритьфрагментированностьиндекса19 - Какимобразомможновызватьперестроениеиндекса25 +Критерии состояния индекса (фрагментация). 26 +Действия по обслуживанию индекса (перестроение, пересоздание). 20 20 28 +---- 29 + 30 +{{children/}} 31 + 32 +---- 33 + 21 21 **Ссылки:** 22 -[[Habr | 14 вопросов об индексах в SQL Server, которые вы стеснялись задать>>https://habr.com/ru/post/247373/]] 23 -[[infostart.ru| Обслуживание индексов и статистик MS SQL Server>>https://infostart.ru/public/256292/]] 35 + 36 +14 вопросов об индексах в SQL Server, которые вы стеснялись задать 37 +https://habr.com/ru/post/247373/ 38 + 39 +Основы индексов в Microsoft SQL Server 40 +https://info-comp.ru/programmirovanie/575-index-basics-in-ms-sql-server.html 41 + 42 +Обслуживание индексов и статистик MS SQL Server 43 +https://infostart.ru/public/256292/ 44 + 45 + 46 +Неожиданная находка, которая освобождает 20 GB неиспользованного индексного пространства [Postgres] 47 +https://habr.com/ru/company/otus/blog/672102/
- XWiki.XWikiComments[0]
-
- Комментарий
-
... ... @@ -1,6 +1,5 @@ 1 1 Кластеризованный индекс Guid или int: 2 -В случае если кластеризованный индекс является числом, то вставка новой строки всегда будет происходит в конец существующего набора данных. (Max + 1) 3 -В случае если кластеризованный индекс является GUID, то значения индекса может попасть в любую позицию набора данных (начало/середина/конец) что негативное сказывается на работе. 4 -Есть более подробный материал по данной теме. 2 +В случае если кластеризованный индекс является нарастающим числом, то вставка новой строки всегда будет происходит в конец существующего набора данных. (Max + 1) 3 +В случае если кластеризованный индекс является GUID, то значения индекса может попасть в любую позицию набора данных (начало/середина/конец), т.к. GUID по умолчанию не дает гарантии нарастания, что может негативно сказаться на производительности. 5 5 6 -В случа е необходимостиGuidимеет смысл наличие2ключей, один из которых int, а второй guid5 +В некоторых случаях может иметь смыл наличие двух столбцов, один из которых int, а второй guid.