Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit1e9a2d1

Browse files
committed
pathman: documentation update (russian)
1 parentb89c95d commit1e9a2d1

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

‎contrib/pg_pathman/README.rus.md

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@
44

55
##Концепция pg_pathman
66

7-
Секционирование -- это способ разбиения одной большой таблицы на множество меньших по размеру. Для каждой записи можно однозначно определить секцию, в которой она должна храниться посредством вычисления ключа. Традиционно выделяют три стратегии секционирования:
8-
9-
* HASH - данные равномерно распределяются по секциям в соответствии со значениями hash-функции, вычисленными по некоторому атрибуту;
10-
* RANGE - данные распределяются по секциям, каждая из которых ответственна за заданный диапазон значений аттрибута;
11-
* LIST - для каждой секции определяется набор конкретных значений атрибута.
12-
7+
Секционирование -- это способ разбиения одной большой таблицы на множество меньших по размеру. Для каждой записи можно однозначно определить секцию, в которой она должна храниться посредством вычисления ключа.
138
Секционирование в postgres основано на механизме наследования. Каждому наследнику задается условие CHECK CONSTRAINT. Например:
149

1510
```
@@ -20,9 +15,7 @@ CREATE TABLE test_2 (CHECK ( id >= 200 AND id < 300 )) INHERITS (test);
2015

2116
Несмотря на гибкость, этот механизм обладает недостатками. Так при фильтрации данных оптимизатор вынужден перебирать все дочерние секции и сравнивать условие запроса с CHECK CONSTRAINT-ами секции, чтобы определить из каких секций ему следует загружать данные. При большом количестве секций это создает дополнительные накладные расходы, которые могут свести на нет выигрыш в производительности от применения секционирования.
2217

23-
Модуль`pg_pathman` предоставляет функции для создания и управления
24-
секциями (см. следующий раздел) и механизм секционирования,
25-
оптимизированный с учетом знания о структуре дочерних таблиц. Конфигурация сохраняется таблице`pathman_config`, каждая строка которой содержит запись для одной секционированной таблицы (название таблицы, атрибут и тип разбиения). В процессе инициализации модуля в разделяемую память сохраняется конфигурация дочерних таблиц в удобном для поиска формате. Получив запрос типа`SELECT` к секционированной таблице,`pg_pathman` анализирует дерево условий запроса и выделяет из него условия вида:
18+
Модуль `pg_pathman` предоставляет функции для создания и управления секциями, а также механизм секционирования, оптимизированный с учетом знания о структуре дочерних таблиц. Конфигурация сохраняется таблице `pathman_config`, каждая строка которой содержит запись для одной секционированной таблицы (название таблицы, атрибут и тип разбиения). В процессе инициализации `pg_pathman` кеширует конфигурацию дочерних таблиц в формате, удобном для быстрого поиска. Получив запрос типа `SELECT` к секционированной таблице, `pg_pathman` анализирует дерево условий запроса и выделяет из него условия вида:
2619

2720
```
2821
ПЕРЕМЕННАЯ ОПЕРАТОР КОНСТАНТА
@@ -32,9 +25,20 @@ CREATE TABLE test_2 (CHECK ( id >= 200 AND id < 300 )) INHERITS (test);
3225
```
3326
WHERE id = 150
3427
```
35-
Затем основываясь на стратегии секционирования и условиях запроса`pg_pathman` выбирает соответствующие секции и строит план.
28+
Затем основываясь на стратегии секционирования и условиях запроса`pg_pathman` находит в кеше соответствующие секции и строит план.
29+
30+
В текущей версии`pg_pathman` поддерживает следующие типы секционирования:
31+
32+
* RANGE - разбивает таблицу на секции по диапазонам ключевого аттрибута; для оптимизации построения плана используется метод бинарного поиска.
33+
* HASH - данные равномерно распределяются по секциям в соответствии со значениями hash-функции, вычисленными по заданному целочисленному атрибуту.
34+
35+
##Roadmap
36+
37+
* Оптимизация поиска секции для соединения (join) таблиц методом NestedLoop;
38+
* LIST-секционирование;
39+
* HASH-секционирование по ключевому аттрибуту с типом, отличным от INTEGER.
3640

37-
##Installation
41+
##Установка
3842

3943
Для установки pg_pathman выполните в командной строке:
4044
```

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp