force_index_by_date and force_primary_key are documented.

This commit is contained in:
2017-09-15 12:00:53 +03:00
parent 6885f6cfaa
commit 4b3e2cd61e
2 changed files with 28 additions and 0 deletions

View File

@ -43,6 +43,30 @@ fallback_to_stale_replicas_for_distributed_queries
По умолчанию - 1 (включена).
.. _settings-settings-force_index_by_date:
force_index_by_date
-------------------
Запрещает выполнение запросов, если использовать индекс по дате невозможно.
Работает с таблицами семейства MergeTree.
При ``force_index_by_date=1`` ClickHouse проверяет, есть ли в запросе условие на ключ даты, которое может использоваться для отсечения диапазонов данных. Если подходящего условия нет - кидается исключение. Обратите внимание на то, что условие ``Date != '2000-01-01'`` подходит даже в том случае, когда соответствует всем данным в таблице (т.е. для выполнения запроса требуется full scan). Подробнее про диапазоны данных в таблицах MergeTree читайте в разделе :ref:`table_engines-mergetree`.
.. _settings-settings-force_primary_key:
force_primary_key
-----------------
Запрещает выполнение запросов, если использовать индекс по первичному ключу невозможно.
Работает с таблицами семейства MergeTree.
При ``force_primary_key=1`` ClickHouse проверяет, есть ли в запросе условие на первичный ключ, которое может использоваться для отсечения диапазонов данных. Если подходящего условия нет - кидается исключение. Подробнее про диапазоны данных в таблицах MergeTree читайте в разделе :ref:`table_engines-mergetree`.
input_format_allow_errors_num
-----------------------------
Устанавливает максимальное количество допустимых ошибок при чтении из текстовых форматов (CSV, TSV и т.п.).

View File

@ -57,8 +57,12 @@ MergeTree
SELECT count() FROM table WHERE CounterID = 34 OR URL LIKE '%upyachka%'
Чтобы проверить сможет ли ClickHouse использовать индекс при выполнении запроса, используйте настройки :ref:`settings-settings-force_index_by_date` и :ref:`settings-settings-force_primary_key`.
Индекс по дате обеспечивает чтение только кусков, содержащих даты из нужного диапазона. При этом, кусок данных может содержать данные за многие даты (до целого месяца), а в пределах одного куска, данные лежат упорядоченными по первичному ключу, который может не содержать дату в качестве первого столбца. В связи с этим, при использовании запроса с указанием условия только на дату, но не на префикс первичного ключа, будет читаться данных больше, чем за одну дату.
Для конкуррентного доступа к таблице, используется мульти-версионность. То есть, при одновременном чтении и обновлении таблицы, данные будут читаться из набора кусочков, актуального на момент запроса. Длинных блокировок нет. Вставки никак не мешают чтениям.
Чтения из таблицы автоматически распараллеливаются.