Как стать автором
Обновить

Комментарии 5

В чем преимущество heap перед кластерным индексом? Я не могу ничего придумать, но PG и, оказывается, MS SQL используют этот метод.

Записи фиксированной длины эффективнее и индексировать, и искать. Поэтому, в heap выгоднее сбрасывать излишне большие данные (varchar больше определенной длина и тп).


Плюс в heap быстрее запись, не нужно тратить время на индекс, можно просто сбросить данные. Поэтому, если данные записал и забыл, то лучше heap.

Да, кучи лучше не использовать для больших таблиц или если данные часто обновляются. Плюс к этому, Heap-таблицы быстрые, но иногда ненадёжные, всегда есть вероятность, что MySQL рухнет
Тут речь все-таки про MS SQL Server. Он и для кластерных «листьев», и для страниц кучи хранит контрольную сумму (ну или первые биты для torn page detection, как настроить).
Так что у Heap могут быть проблемы со скоростью чтения, но в плане надёжности она не проигрывает кластерным индексам
Данные в таблицах могут быть организованы двумя способами:

Кластерный индекс (clustered index)

Куча (heap)

Данные в таблицах могут быть организованы тремя способами:
Куча, кластерный индекс (rowstore), кластерный columnstore.
С 2014 уже как.
А с 2017 еще и в варианте архивного columnstore.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий