Хотя ClickHouse известен своей скоростью и надежностью, оптимальная производительность достигается при соблюдении определенных эксплуатационных параметров. Например, слишком большое количество таблиц, баз данных или частей может негативно повлиять на производительность. Чтобы предотвратить это, ClickHouse Cloud устанавливает ограничения по нескольким параметрам эксплуатации. Значения этих ограничений по умолчанию приведены ниже. Если не указано иное, они действуют на уровне сервиса.
| Параметр | Ограничение |
|---|---|
| Базы данных | 1000 |
| Таблицы | 5000 |
| Представления | 15000 |
| Словари | 5000 |
| Именованные коллекции (закрытая предварительная версия) | 1000 |
| Столбцы | ~1000 (широкий формат предпочтительнее компактного) |
| Партиции | 50k |
| Части | 10k (см. настройку max_parts_in_total) |
| Размер части | 150 GB |
| Сервисов на организацию | 20 (мягкое ограничение) |
| Реплик на сервис | 20 (мягкое ограничение) |
| Реплик на хранилище | 50 (мягкое ограничение) |
| Низкая кардинальность | 10k или меньше |
| Первичных ключей в таблице | 4–5, обеспечивающих достаточную фильтрацию данных |
| Параллелизм запросов | 1000 (на реплику) |
| Пакетная загрузка | Всё > 1M строк разделяется на блоки по 1M строк |
Сведения об ограничениях для реплик хранилища и масштабирования см. в разделе хранилища.
Приведенные выше значения являются ограничениями по умолчанию. Ограничение для конкретного сервиса может быть выше указанного здесь значения, поскольку для более крупных сервисов предусмотрен больший запас ресурсов. Фактическое ограничение для вашего сервиса указано в предупреждении, которое вы получите при приближении к нему. Для сервисов, уже превышающих указанные выше ограничения использования, ограничения на таблицы и базы данных устанавливаются на уровне текущего количества таблиц и баз данных сервиса плюс 25%.
Конкретные пороги предупреждения и ошибки для вашего сервиса можно проверить, выполнив запрос к system.server_settings. Например,
SELECT *
FROM system.server_settings
WHERE name IN ('max_table_num_to_warn', 'max_table_num_to_throw', 'max_database_num_to_warn', 'max_database_num_to_throw', 'max_view_num_to_warn', 'max_view_num_to_throw', 'max_dictionary_num_to_warn', 'max_dictionary_num_to_throw', 'max_named_collection_num_to_warn', 'max_named_collection_num_to_throw')