[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-bazy-dannykh-v-chem-otlichie-mezhdu-klasternymi-i-neklasternymi-indeksami":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":17,"progress":18,"seo":19},1139,"v-chem-otlichie-mezhdu-klasternymi-i-neklasternymi-indeksami",35,"bazy-dannykh","Базы данных","🗄️","В чем отличие между кластерными и некластерными индексами?","Кластерный индекс определяет физический порядок хранения данных в таблице, а некластерный — создаёт отдельную структуру со ссылками на строки, не влияя на физическое расположение данных.\n\n### Сравнение\n\n| Характеристика | Кластерный индекс | Некластерный индекс |\n|---------------|-------------------|---------------------|\n| Физический порядок данных | Данные упорядочены по ключу индекса | Произвольный |\n| Количество на таблицу | Один | Много |\n| Скорость последовательного чтения | Высокая (данные рядом на диске) | Зависит от фактора кластеризации |\n| Скорость вставки | Медленная (нужно поддерживать порядок) | Быстрее |\n| Дополнительное место | Минимальное (данные = индекс) | Требует отдельную структуру |\n| Листовые узлы содержат | Сами данные строки | Указатели на строки |\n\n### Как это работает\n\nКластерный индекс — это как телефонный справочник, где записи физически упорядочены по фамилии. Чтобы найти всех людей на букву «К», достаточно открыть нужную страницу и читать подряд.\n\nНекластерный индекс — это как предметный указатель в книге. Указатель упорядочен, но сами страницы не переставлены. Для каждого слова нужно перейти на указанную страницу.\n\n### Фактор кластеризации\n\nФактор кластеризации показывает, насколько физический порядок строк в таблице соответствует порядку ключей некластерного индекса. При высоком факторе (строки расположены хаотично относительно индекса) каждый поиск по индексу требует обращения к отдельной странице диска, и эффективность индекса падает.\n\n### Особенности в разных СУБД\n\n| СУБД | Кластерный индекс |\n|------|-------------------|\n| MySQL (InnoDB) | Таблица всегда кластеризована по PK (если нет PK, генерируется скрытый) |\n| PostgreSQL | Команда CLUSTER, но не поддерживается автоматически при INSERT |\n| SQL Server | CLUSTERED INDEX, один на таблицу |\n\n> **На собеседовании:** интервьюер хочет услышать ключевую разницу: кластерный = физический порядок данных, некластерный = отдельная структура со ссылками. Частая ошибка — не знать, что в InnoDB (MySQL) таблица всегда кластеризована по первичному ключу.","","middle",[15,16],"databases","performance",[],null,{"title":20,"description":21,"ogTitle":22,"ogDescription":23,"keywords":24,"schemaAnswer":34,"featuredSnippetReady":35},"Кластерный vs некластерный индекс — отличия — Gymterview","Отличия кластерного и некластерного индексов: физический порядок данных, количество на таблицу, скорость чтения и вставки. Особенности в MySQL InnoDB и PostgreSQL.","Кластерный vs некластерный индекс: ключевые отличия — Gymterview","Сравнение кластерного и некластерного индексов: физический порядок, скорость, количество. InnoDB, PostgreSQL, SQL Server.",[25,26,27,28,29,30,31,32,33],"кластерный индекс","некластерный индекс","clustered index","nonclustered index","InnoDB","PostgreSQL","MySQL","SQL Server","фактор кластеризации","Кластерный индекс определяет физический порядок хранения данных в таблице (один на таблицу, листовые узлы содержат сами данные). Некластерный — отдельная структура со ссылками на строки (может быть много). В MySQL InnoDB таблица всегда кластеризована по PK. Эффективность некластерного индекса зависит от фактора кластеризации.",true]