You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: contrib/pathman/README.md
+10-10Lines changed: 10 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -48,15 +48,15 @@ It will require to restart the PostgreSQL instance.
48
48
49
49
### Partitions Creation
50
50
```
51
-
CREATE FUNCTION create_hash_partitions(
51
+
create_hash_partitions(
52
52
relation TEXT,
53
53
attribute TEXT,
54
54
partitions_count INTEGER)
55
55
```
56
56
Performs HASH partitioning for `relation` by integer key `attribute`. Creates `partitions_count` partitions and trigger on INSERT. Data doesn't automatically copied from parent table to partitions. Use `partition_data()` function (see below) to migrate data.
57
57
58
58
```
59
-
CREATE FUNCTION create_range_partitions(
59
+
create_range_partitions(
60
60
relation TEXT,
61
61
attribute TEXT,
62
62
start_value ANYELEMENT,
@@ -65,7 +65,7 @@ CREATE FUNCTION create_range_partitions(
65
65
```
66
66
Performs RANGE partitioning for `relation` by partitioning key `attribute`. `start_value` argument specifies initial value, `interval` sets the range of values in a single partition, `premake` is the number of premade partitions (the only one partition will be created if `premake` is 0).
67
67
```
68
-
CREATE FUNCTION create_range_partitions(
68
+
create_range_partitions(
69
69
relation TEXT,
70
70
attribute TEXT,
71
71
start_value ANYELEMENT,
@@ -76,29 +76,29 @@ Same as above but suitable for `DATE` and `TIMESTAMP` partitioning keys.
76
76
77
77
### Data migration
78
78
```
79
-
CREATE FUNCTION partition_data(parent text)
79
+
partition_data(parent text)
80
80
```
81
81
Copies data from parent table to its partitions.
82
82
83
83
### Partitions management
84
84
```
85
-
CREATE FUNCTION split_range_partition(partition TEXT, value ANYELEMENT)
85
+
split_range_partition(partition TEXT, value ANYELEMENT)
86
86
```
87
87
Splits RANGE `partition` in two by `value`.
88
88
```
89
-
CREATE FUNCTION merge_range_partitions(partition1 TEXT, partition2 TEXT)
Copy file name to clipboardExpand all lines: contrib/pathman/README.rus.md
+8-6Lines changed: 8 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -19,12 +19,14 @@ CHECK ( id >= 200 AND id < 300 )
19
19
20
20
Несмотря на гибкость, этот механизм обладает недостатками. Так при фильтрации данных оптимизатор вынужден перебирать все дочерние секции и сравнивать условие запроса с CHECK CONSTRAINT-ами секции, чтобы определить из каких секций ему следует загружать данные. При большом количестве секций это создает дополнительные накладные расходы, которые могут свести на нет выигрыш в производительности от применения секционирования.
21
21
22
-
Модуль `pathman` предоставляет функции для создания и управления секциями (см. следующий раздел) и механизм секционирования, оптимизированный с учетом знания о стуктуре дочерних таблиц. Конфигурация сохраняется таблице `pathman_config`, каждая строка которой содержит запись для одной секционированной таблицы (название таблицы, аттрибут и тип разбиения). В процессе инициализации модуля в разделяемую память сохраняется конфигурация дочерних таблиц в удобном для поиска формате. Получив запрос типа `SELECT` к секционированной таблице, `pathman` анализирует дерево условий запроса и выделяет из него условия вида:
22
+
Модуль `pathman` предоставляет функции для создания и управления
23
+
секциями (см. следующий раздел) и механизм секционирования,
24
+
оптимизированный с учетом знания о структуре дочерних таблиц. Конфигурация сохраняется таблице `pathman_config`, каждая строка которой содержит запись для одной секционированной таблицы (название таблицы, атрибут и тип разбиения). В процессе инициализации модуля в разделяемую память сохраняется конфигурация дочерних таблиц в удобном для поиска формате. Получив запрос типа `SELECT` к секционированной таблице, `pathman` анализирует дерево условий запроса и выделяет из него условия вида:
23
25
24
26
```
25
27
ПЕРЕМЕННАЯ ОПЕРАТОР КОНСТАНТА
26
28
```
27
-
где `ПЕРЕМЕННАЯ` -- это аттрибут, по которому было выполнено разбиение, `ОПЕРАТОР` -- оператор сравнения (поддерживаются =, <, <=, >, >=), `КОНСТАНТА` -- скалярное значение. Например:
29
+
где `ПЕРЕМЕННАЯ` -- это атрибут, по которому было выполнено разбиение, `ОПЕРАТОР` -- оператор сравнения (поддерживаются =, <, <=, >, >=), `КОНСТАНТА` -- скалярное значение. Например:
28
30
29
31
```
30
32
WHERE id = 150
@@ -33,7 +35,7 @@ WHERE id = 150
33
35
34
36
## Installation
35
37
36
-
Для установки pathman выполните в директории раширения команду:
38
+
Для установки pathman выполните в директории расширения команду:
37
39
```
38
40
make install
39
41
```
@@ -114,7 +116,7 @@ INSERT INTO hash_rel (value) SELECT g FROM generate_series(1, 10000) as g;
0 commit comments