Если у меня есть столбец таблицы с данными и создать индекс в этом столбце, будет ли индекс занимать столько же места на диске, сколько и сам столбец?У индексов DB занимают одинаковое количество дискового пространства как данные столбца?
Мне интересно, потому что я пытаюсь понять, действительно ли b-деревья хранят копии данных столбцов в листовых узлах или они как-то указывают на это?
Извините, если это «Будет ли Java заменять XML?» вид вопрос.
UPDATE:
создал таблицу без индекса с одного столбца GUID, добавлена 1M строки - 26MB
же таблица с первичным ключом (кластерный индекс) - 25MB (даже меньше!), размер индекса - 176 КБ
же таблица с уникальным ключом (некластеризованным индексом) - 26MB, размер индекса - 27MB
Таким образом, только некластеризованные индексы занимают столько места, сколько сами данные.
Все измерения были сделаны в SQL Server 2005
Это своего рода кластеризованный индекс? – Anton
Я думаю, что кластеризованные индексы хранят фактические данные, потому что кластеризованные индексы сортируются так же, как и данные. – Valentin
Да, IOT похож на кластеризованный индекс. Строка в таблице физически переупорядочена. Отличная производительность для запроса данных, но медленнее для вставки. – ewernli