172 похожих чатов

Народ, читаю сейчас про хранение data files index organized tables

и heap organized tables в базах.
загуглил, написано, что в postgres heap organized tables, и если хотите, можно clustered сделать, но делается он на основании индекса.
Вот хочу спросить....
если уже есть индекс, на основании которого кластеризуется таблица, есть ли существенный профит?
т.е по скорости выборки, вроде как...хотя опять же, не факт.
т.е кто-то юзает активно их?
Причем, есть же тема, что можно создать индекс с включением полей необходимых, чтобы Index only scan был...

4 ответов

6 просмотров

в постгресе в clustered таблице записи просто упорядочены по ключу индекса без дальнейшего поддержания порядка. > если уже есть индекс, на основании которого кластеризуется таблица, есть ли существенный профит? профит как и у всех кластеризованных индексов - ниже цена (seq_page_cost вместо random_page_cost) при сканировании нескольких смежных записей по индекс скану

Anatoliy-Burov Автор вопроса
Maksim Milyutin
в постгресе в clustered таблице записи просто упор...

я просто пытаюсь понять, в чем будет разница, если я например создам индекс с включением необходимых полей, которые мне будут нужны в выборке? т.е зачем именно таблицу кластеризовать... Т.е общая суть ясна, упорядочить хранение tuples. но для этого индексы есть. окей...индексы есть, а если данные захотим получить, не обращаясь к таблице? - просто создаём индекс с включением требуемых полей. Т.е я бы понял, если бы таблица кластерилизовывалась без создания вторичного индекса, например. Тогда был бы профит, что можно место сэкономить на диске. А так всеравно отдельно индекс создать надо... Ещё и поддерживать кластеризацию таблицы нужно... Я просто на практике как то не применял кластеризацию таблиц и вот пытаюсь понять, где оно реально применимо, где другие подходы не сработают?) Наверное, где применяются hdd диски и последовательное чтение упорядоченных данных требуется, типа where id between 10 and 500....? Просто в век ssd и nvme, наверно не так важна кластеризация таблиц?

Anatoliy Burov
я просто пытаюсь понять, в чем будет разница, если...

Покрывающие индексы больше по объёму, аффектятся при обновлении покрывающих атрибутов. Потом не всегда index-only scan работает только с индексом - иногда достаётся строка из heap-таблицы для проверки видимости индексного указателя в рамках текущей транзакции, в худшем случае IOS может деградировать в полноценный index scan. А так, да, кластеризованная таблица по предназначению сходна с покрывающим индексом для целевого набора атрибутов в запросе. > Наверное, где применяются hdd диски и последовательное чтение упорядоченных данных требуется, типа where id between 10 and 500....? да, и нагрузка как правило read-only. > Просто в век ssd и nvme, наверно не так важна кластеризация таблиц? разница между последовательным и случайным сканированием всё равно будет. Правда, не такая существенная как у hdd

В MSSQL почти всегда выгодно кластеризовать по PRIMARY KEY (по индексу, который уникальный, недлинный и используется чаще остальных). Доступ по этому индексу станет быстрее, а по остальным столько же. Вторая гипотеза следует из того, что доступ из secondary индекса всегда непрямой. Т.е. heap organized tables в MSSQL они на самом деле тоже index organized по индексу ROWID.

Похожие вопросы

Обсуждают сегодня

Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Кстати а покупал кто-нибудь ЭЦП для подписи кода? А то у меня на некоторых компах и ОС иногда SmartScreen винды программу за вирус принимал. Если купить такую ЭЦП и подписыват...
Дмитрий Завгородний
15
Запускаю SIMD на Delphi 11 CE пишет: Exception class name: EJclError Exception message: Function not found: kernel32.dll.GetEnabledExtendedFeatures (0014763C){Jcl280.bpl } [7...
Александр Смоляков
10
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
10
Hello, good time everyone I use Firebase to implement push notification inside the Flutter application and it works, but I don't receive the notification when the application ...
Iman
1
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
тут по sql есть спецы надеюсь есть таблица большая и там поле DATETIME TTIMESTAMP NOT NULL выборки будут по дням и нужен индекс... какой из индексов будет менее напряжным и ме...
Slym
9
какие есть варианты для чтения больших текстовых файлов кроме TBufferedFileStream?
zamtmn
12
Вместо import и library придется писать importlib?
The Bird of Hermes
19
Вот такая неприятность на stable и ea версиях: werf helm --namespace s4c upgrade --install --atomic --timeout 5m --set s4c.version=839185f3 --set s4c.deployEnv=staging -f d...
citius
6
Карта сайта