С некоторыми серверами b/tree/языками программирования, которые все еще используются сегодня, для хранения данных используются фиксированные или переменные длины. Когда в файл (таблицу) добавляется новая запись/запись данных, запись добавляется (1) в конец файла (или заменяет удаленную запись), а (2) индексы сбалансированы. Когда данные хранятся таким образом, вам не нужно беспокоиться о производительности системы (насколько это делает сервер b-дерева для возврата указателя на первую запись данных). Время отклика выполняется только # узлами в ваших индексных файлах.
Когда вы используете SQL, вы, надеюсь, осознаете, что производительность системы должна учитываться всякий раз, когда вы пишете инструкцию SQL. Использование инструкции ORDER BY в столбце без индексации может привести систему к коленям. Использование кластерного индекса может привести к ненужной нагрузке на CPU. Это 21-й век, и мне жаль, что нам не нужно было думать о производительности системы при программировании в SQL, но мы все еще это делаем.
С некоторыми более старыми языками программирования было обязательно использовать индекс при извлечении отсортированных данных. Я только хочу, чтобы это требование все еще было на месте. Я могу только удивляться, сколько компаний обновили свои медленные компьютерные системы из-за плохо написанного оператора SQL для неиндексированных данных.
В течение моих 25 лет программирования мне никогда не нужны мои физические данные, хранящиеся в определенном порядке, поэтому, возможно, поэтому некоторые программисты избегают использования кластерных индексов. Трудно понять, что такое компромисс (время хранения, время поиска стихов), особенно если система, которую вы проектируете, может хранить миллионы записей когда-нибудь.
«Единственное, что я заметил, это то, что все первичные ключи создаются как индексы NON CLUSTERED, а не clusted« Почему я наблюдаю обратное? –
@ vgv8 - для уточнения его сценариев базы данных, которые я унаследовал, которые явно устанавливают ключи не кластеризованными. – AJM
Я все еще не мог понять это http://stackoverflow.com/questions/3970430/why-when-how-is-whole-clustered-index-scan-chosen-rather-than-full-table-scan, хотя я не мог понять, почему/когда вообще есть кластеризованный индекс. –