|
Объясните, пожалуйста, за кластерные и некластерные индексы.
|
|||
---|---|---|---|
#18+
Здравствуйте! Мозг кипит. Прочитал достаточное количество статей по кластеризации индексов и понял, что я так и не могу усвоить разницу. Понял, что кластерный индекс - это первичный ключ БД. С помощью кластерного индекса таблица упорядочена и имеет уникальный столбец, что не дает спутать с другой строкой и поиск осуществляется по O(log n). Отсюда следует, что кластерный индекс в таблице может быть только один. Но я не могу построить в голове необходимость некластерного индекса. Некластерный индекс нужен, чтобы мы могли вставить новый индекс в таблицу (для ускорения поиска), которая уже имеет первичный ключ (кластерный индекс)? Пример: Мы имеем таблицу, которая содержит номер карты, номера транзакций покупок. Все покупки уникальные. Значит этим покупкам мы даем первичный ключ (кластерный индекс). Мы получаем 1 млн уникальных записей. Но нам известно, что в данной таблице находится только 5 уникальных номеров карт . Значит на эти номера карт мы можем создать новый индекс, чтобы ускорить поиск. Этот индекс будет являться некластарным индексом (т.к. первичный ключ уже есть)? Или все сложнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2021, 15:10 |
|
Объясните, пожалуйста, за кластерные и некластерные индексы.
|
|||
---|---|---|---|
#18+
sysn1k Или все сложнее? Все проще. Некластерный индекс - это точно такая же таблица, как кластерный индекс, но содержащее меньшее количество полей, возможно - более узкий набор данных (если это фильтрованный индекс), и упорядоченная по другому кластерному индексу . И еще - в каждой строке такой таблицы - есть отсылка на кластерный индекс исходной таблицы. Кластерный и некластерный индексы и их консистентность - поддерживаются автоматически, и прозрачно для пользователя. Дбэнжин использует некластерные индексы взамен кластерных всегда, когда обнаруживает, что некластерный индекс "легче" кластерного и что он отсортирован так, как требуется в запросе, ну, плюс-минус. Нет, нюансов, конечно много, но примерно так. Кластерный индекс - это механизм хранения таблицы в базе. Собственно поэтому кластерный индекс у таблицы может быть только один. Но не беда! Можно наделать копий данных, и организовать их в точно такой же кластерный индекс, и хранить его рядом. Авось, для каких то запросов окажется удобнее манипулировать не основной структурой с данными, а рядомлежащей производной. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2021, 16:33 |
|
Объясните, пожалуйста, за кластерные и некластерные индексы.
|
|||
---|---|---|---|
#18+
sysn1k, первичный ключ не имеет отношения к кластерному индексу. Вы начали читать книгу с середины. Попробуйте ее прочесть сначала и начать с принципов организации реляционных данных. Узнайте, что такое атрибут, кортеж, отношение. Узнайте, какие условия должны быть соблюдены для формирования данных в виде отношения. Узнайте, что такое индексирование и как оно работает. Потом переходите к понятию кластерного индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2021, 21:40 |
|
Объясните, пожалуйста, за кластерные и некластерные индексы.
|
|||
---|---|---|---|
#18+
Владислав Колосов sysn1k, первичный ключ не имеет отношения к кластерному индексу. Вы начали читать книгу с середины. Попробуйте ее прочесть сначала и начать с принципов организации реляционных данных. Узнайте, что такое атрибут, кортеж, отношение. Узнайте, какие условия должны быть соблюдены для формирования данных в виде отношения. Узнайте, что такое индексирование и как оно работает. Потом переходите к понятию кластерного индекса. Чо правда, фсе это надо знать, шобы постичь кластерный индекс? ЗЫ. Кластерный индекс = физический порядок хранения строк в таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 20:19 |
|
Объясните, пожалуйста, за кластерные и некластерные индексы.
|
|||
---|---|---|---|
#18+
aleks222 Владислав Колосов sysn1k, первичный ключ не имеет отношения к кластерному индексу. Вы начали читать книгу с середины. Попробуйте ее прочесть сначала и начать с принципов организации реляционных данных. Узнайте, что такое атрибут, кортеж, отношение. Узнайте, какие условия должны быть соблюдены для формирования данных в виде отношения. Узнайте, что такое индексирование и как оно работает. Потом переходите к понятию кластерного индекса. Чо правда, фсе это надо знать, шобы постичь кластерный индекс? ЗЫ. Кластерный индекс = физический порядок хранения строк в таблице. Конечно, умнее было бы знать, чем думать, что "физический порядок хранения строк в таблице" и "кластерный индекс" - это всегда слова-синонимы. И тем, более, что как знание, так и не знание - образования не требует. По крайней мере, выходящего за пределы начальной школы. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 21:06 |
|
Объясните, пожалуйста, за кластерные и некластерные индексы.
|
|||
---|---|---|---|
#18+
booby aleks222 пропущено... Чо правда, фсе это надо знать, шобы постичь кластерный индекс? ЗЫ. Кластерный индекс = физический порядок хранения строк в таблице. Конечно, умнее было бы знать, чем думать, что "физический порядок хранения строк в таблице" и "кластерный индекс" - это всегда слова-синонимы. И тем, более, что как знание, так и не знание - образования не требует. По крайней мере, выходящего за пределы начальной школы. Да-да, ты ишо про перемещенные сектора диска вспомни. ЗЫ. Надувать щеки и делать из тривиальных вещей заумные - каждый может. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 07:23 |
|
Объясните, пожалуйста, за кластерные и некластерные индексы.
|
|||
---|---|---|---|
#18+
Все совсем просто. Кластерный индекс это сама таблица, организованная в индекс (сбалансированное дерево). На листьях дерева - все данные. Некластерный индекс это подобное же сбалансированное дерево, но на листьях - значение из кластерного, если он есть или физическое положение записи, если его нет. + значения Included. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2021, 11:58 |
|
|
start [/forum/topic.php?fid=46&fpage=20&tid=1684523]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 267ms |
total: | 392ms |
0 / 0 |