Разница между табличным заполнителем и индексом fillfactor

В Postgres можно установить fillfactor как для индекса, так и для таблицы. В чем разница? Как определить значения для обоих. Что это за дела?

Я пытаюсь сгруппировать пространственное отношение по пространственному индексу. У него есть несколько миллионов записей. Записи обновляются постоянно, но очень мало новых создаются ежедневно.

Вариант использования - запросы пространственного диапазона. Что будет хорошим значением для fillfactor таблицы и /или индекса заполнения?

11 голосов | спросил S Shah 20 MaramTue, 20 Mar 2012 03:49:41 +04002012-03-20T03:49:41+04:0003 2012, 03:49:41

1 ответ


6

Из страницы руководства CREATE TABLE (выделено мной)

  

Значение fillfactor для таблицы составляет от 10 до 100. 100 (полная упаковка) является значением по умолчанию. Когда задан меньший fillfactor, операции INSERT упаковывают таблицы только в указанный процент; оставшееся место на каждой странице зарезервировано для обновления строк на этой странице. Это дает UPDATE возможность разместить обновленную копию строки на той же странице, что и оригинал, что более эффективно, чем размещение на другой странице. Для таблицы, чьи записи никогда не обновляются, полная упаковка - лучший выбор, но в сильно обновляемых таблицах подходят меньшие заполнители.

Из страницы руководства CREATE INDEX (выделено мной)

  

Значение fillfactor для index - это процент, который определяет, как полный   индексный метод будет пытаться упаковывать индексные страницы. Для B-деревьев, лист-лист   заполняются до этого процента при начальной сборке индекса, а также   при расширении индекса справа (наибольшие значения ключа). Если страницы   впоследствии становятся полностью полными, они будут разделены, что приведет к   постепенная деградация эффективности индекса. B-деревья используют значение по умолчанию   fillfactor 90, но может быть выбрано любое значение от 10 до 100. Если   таблица статична, тогда fillfactor 100 лучше всего минимизировать индекс   физический размер, но для сильно обновляемых таблиц меньший заполняющий фактор   лучше минимизировать необходимость разделения страниц. Другие методы индекса   используйте fillfactor различными, но грубо аналогичными способами; по умолчанию   fillfactor различается между методами.

ответил stim 20 MaramTue, 20 Mar 2012 04:40:42 +04002012-03-20T04:40:42+04:0004 2012, 04:40:42

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132