Skip to content

Commit eaa900a

Browse files
Очистка
1 parent 9e8f819 commit eaa900a

File tree

2 files changed

+3
-10
lines changed

2 files changed

+3
-10
lines changed

CORE.md

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -287,15 +287,6 @@ COMMIT;
287287
На уровнях `Repeatable Read` и `Serializable` снимок создается один раз в начале первого оператора транзакции. Такой снимок остается активным до самого конца транзакции.
288288

289289

290-
291-
292-
293-
294-
295-
296-
297-
298-
299290
### Блокировки
300291

301292
Задача блокировок заключается в упорядочивании конкурентного доступа к разделяемым ресурсам. Под конкурентным доступом подразумевается одновременный доступ нескольких процессов.

dba/DBA.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ SELECT pg_reload_conf();
510510

511511
Задачи, требующие периодического выполнения:
512512

513-
1. <b>Очистка страниц от исторических данных,которые образуются из-за многоверсионности:</b>
513+
1. <b>Очистка страниц от исторических данных, которые образуются из-за многоверсионности:</b>
514514
Механизм многоверсионности позволяет эффективно реализовать изоляцию на основе снимков, но в результате в табличных страницах накапливаются старые версии строк, а в страницах индексов — ссылки на эти версии.
515515

516516
<em>Если своевременно не вычищать исторические данные, таблицы и индексы будут неконтролируемо разрастаться и поиск в них актуальных версий строк будет замедляться.</em>
@@ -559,6 +559,8 @@ SELECT pg_reload_conf();
559559

560560
* <b>VACUUM FULL</b>: Эта команда выполняет более интенсивный процесс очистки и компактации таблицы. Она перемещает данные из таблицы в новое физическое расположение, освобождая пространство, которое занимали удаленные строки. Однако, <b>VACUUM FULL</b> блокирует таблицу на время выполнения операции и может быть более ресурсоемкой по сравнению с обычным <b>VACUUM</b>.
561561

562+
* <b>VACUUM (PARALLEL n)</b>: Этап очистки индексов может выполняться в параллельном режиме. Это происходит, если на таблице создано несколько (больше одного) достаточно больших индексов: размер индекса должен превышать значение параметра `min_parallel_index_scan_size` (512 Кбайт по-умолчанию). Тогда для каждого подходящего индекса запускается отдельный рабочий процесс. Каждый индекс обрабатывается только одним рабочим процессом, то есть несколько процессов не могут очищать один и тот же индекс. Количество процессов ограничено сверху значением параметра `max_parallel_maintenance_workers` и может быть дополнительно ограничено явным указанием степени параллелизма при вызове команды `VACUUM (PARALLEL n)`.
563+
562564
В целом, <b>VACUUM</b> обычно достаточно для поддержания эффективности работы базы данных, однако, при необходимости выполнить более глубокую очистку и компактацию таблицы, может использоваться <b>VACUUM FULL</b>. Вариант этой команды с ключевым словом <b>CONCURRENTLY</b> работает дольше, но не блокирует индекс и не мешает чтению и обновлению данных.
563565

564566
Вывод данных об автоочистке:

0 commit comments

Comments
 (0)