Embora o ClickHouse seja conhecido por sua velocidade e confiabilidade, o desempenho ideal é alcançado dentro de determinados parâmetros operacionais. Por exemplo, ter tabelas, bancos de dados ou partes em excesso pode afetar negativamente o desempenho. Para evitar isso, o ClickHouse Cloud impõe limites em diversas dimensões operacionais. Os valores padrão desses limites de proteção estão listados abaixo. Salvo indicação em contrário, eles se aplicam ao nível do serviço.
| Dimensão | Limite |
|---|---|
| Bancos de dados | 1000 |
| Tabelas | 5000 |
| Views | 15000 |
| Dicionários | 5000 |
| Coleções nomeadas (prévia privada) | 1000 |
| Colunas | ~1000 (o formato wide é preferível ao compact) |
| Partições | 50k |
| Partes | 10k (consulte a configuração max_parts_in_total) |
| Tamanho da parte | 150 GB |
| Serviços por organização | 20 (flexível) |
| Réplicas por serviço | 20 (flexível) |
| Réplicas por warehouse | 50 (flexível) |
| Baixa cardinalidade | 10k ou menos |
| Chaves primárias em uma tabela | 4–5 que filtrem suficientemente os dados |
| Concorrência de consultas | 1000 (por réplica) |
| Ingestão em lote | Qualquer valor > 1 milhão de linhas é dividido em blocos de 1 milhão de linhas |
Para limites de réplicas e escalonamento de warehouse, consulte warehouses.
Os valores acima são limites de proteção padrão. O limite aplicado a um serviço específico pode ser maior do que o valor mostrado aqui, pois serviços maiores são configurados com mais margem de capacidade. O limite efetivamente aplicável ao seu serviço é informado no aviso recebido quando você se aproxima dele. Para serviços que já excedem os limites de uso acima, os limites de tabelas/bancos de dados são definidos como a contagem atual de tabelas/bancos de dados do serviço mais 25%.
Os limites específicos de aviso e erro do seu serviço podem ser verificados consultando system.server_settings. Por exemplo,
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')