diff options
author | alexv-smirnov <alexv-smirnov@yandex-team.ru> | 2022-03-22 01:58:57 +0300 |
---|---|---|
committer | alexv-smirnov <alexv-smirnov@yandex-team.ru> | 2022-03-22 01:58:57 +0300 |
commit | d9764c900cb7a7ffd5167dd33d7068b483765a2f (patch) | |
tree | 85a384034cf294c379d12571e3f1189ccfdf0718 | |
parent | 7a34210ed18ac80ff59b9aa1d93800eb56b5dba4 (diff) | |
download | ydb-d9764c900cb7a7ffd5167dd33d7068b483765a2f.tar.gz |
ydb docs scheme best_practices
ref:bd9f13ba3c6db2c2a6c4222a5028f584d987c40e
-rw-r--r-- | ydb/docs/ru/core/best_practices/_includes/secondary_indexes.md | 14 | ||||
-rw-r--r-- | ydb/docs/ru/core/best_practices/_includes/table_sharding.md | 4 | ||||
-rw-r--r-- | ydb/docs/ru/core/best_practices/toc_i.yaml | 2 |
3 files changed, 11 insertions, 9 deletions
diff --git a/ydb/docs/ru/core/best_practices/_includes/secondary_indexes.md b/ydb/docs/ru/core/best_practices/_includes/secondary_indexes.md index 326950e45e4..c06f994f01f 100644 --- a/ydb/docs/ru/core/best_practices/_includes/secondary_indexes.md +++ b/ydb/docs/ru/core/best_practices/_includes/secondary_indexes.md @@ -19,15 +19,15 @@ Так как индекс содержит собственные данные, являющиеся производными от данных в таблице, то при создании индекса на существующей таблице с данными будет выполнена операция начального построения индекса, которая может занимать продолжительное время. Данная операция выполняется в фоновом режиме, не блокирует работу с таблицей, но до окончания построения новым индексом воспользоваться будет невозможно. Использование индекса возможно только в порядке включенных в него полей. Если в индексе два поля `a` и `b`, то такой индекс может быть эффективно использован для запросов вида: -- `where a=$a and b=$b` -- `where a=$a` -- `where a>$a`, а также другие операторы сравнения -- `where a=$a and b>$b`, а также любые другие операторы сравнения, но первое поле должно проверяться на равенство +- `where a = $var1 and b = $var2` +- `where a = $var1` +- `where a > $var1`, а также другие операторы сравнения +- `where a = $var1 and b > $var2`, а также любые другие операторы сравнения, но первое поле должно проверяться на равенство При этом, такой индекс не может быть применен для следующих запросов: -- `where b=$b` -- `where a>$a and b>$b`, точнее эта запись будет равнозначна `where a>$a` с точки зрения применения индекса -- `where b>$b` +- `where b = $var1` +- `where a > $var1 and b > $var2`, точнее эта запись будет равнозначна `where a > $var1` с точки зрения применения индекса +- `where b > $var1` С учетом описанной выше особенности, бесполезно пытаться заранее индексировать все возможные комбинации колонок в таблице в расчете на быстрое исполнение любых запросов. Индекс - это всегда компромисс между скоростью поиска и записи, а также занимаемым данными местом в хранилище. Индексы создаются под конкретные выборки и условия поиска, которые будут делаться приложением в базе данных. diff --git a/ydb/docs/ru/core/best_practices/_includes/table_sharding.md b/ydb/docs/ru/core/best_practices/_includes/table_sharding.md index 6c440315e8f..e059f0c7956 100644 --- a/ydb/docs/ru/core/best_practices/_includes/table_sharding.md +++ b/ydb/docs/ru/core/best_practices/_includes/table_sharding.md @@ -1,4 +1,4 @@ -# Рекомендации по партицированию таблиц +# Партиционирование таблиц Таблицы в {{ ydb-short-name }} отсортированы по возрастанию первичного ключа. Партицирование таблиц осуществляется путём разбиения диапазона значений ключа на последовательные непересекающиеся диапазоны - партиции. @@ -17,3 +17,5 @@ Автопартицирование по размеру параметризуется настройкой размера партиции, при достижении которого происходит её разбиение. По умолчанию это значение равно 2ГБ. Выбор ключа для разбиения делается на основании гистограммы распределения размера данных в партиции по поддиапазонам ключей. Если же суммарный размер данных в смежных партициях становится меньше половины от настройки размера, то эти партиции сливаются. Срабатывание автопартицирования по нагрузке определяется потреблением CPU даташардом обслуживающим партицию. Все даташарды следят за своим потреблением CPU. Если в какой-то момент времени обнаруживается высокое (>50%) потребление, происходит разбиение партиции. Для выбора ключа используется статистика по обращениям к ключам своей партиции. + +Полный перечень параметров таблиц, включая параметры партиционирования, с комментариями об из применении, приведен в пункте [Партиционирование таблиц](../../concepts/datamodel.md#partitioning) статьи об объектах схемы данных в разделе "Концепции".
\ No newline at end of file diff --git a/ydb/docs/ru/core/best_practices/toc_i.yaml b/ydb/docs/ru/core/best_practices/toc_i.yaml index 031e45c02ed..07ed073a5a3 100644 --- a/ydb/docs/ru/core/best_practices/toc_i.yaml +++ b/ydb/docs/ru/core/best_practices/toc_i.yaml @@ -3,7 +3,7 @@ items: href: index.md - name: Проектирование схемы href: schema_design.md -- name: Партицирование таблиц +- name: Партиционирование таблиц href: table_sharding.md - name: Вторичные индексы href: secondary_indexes.md |