Qué permite una alta concurrencia
Las consultas rápidas son la base de un QPS alto. Cuanto menos trabajo requiera cada consulta, más consultas podrá ejecutar un servidor simultáneamente. Las principales características que reducen el trabajo por consulta son:- El índice primario disperso de la familia de motores de tabla MergeTree, que evita leer datos que no coinciden con la consulta.
- Las cachés, como la caché de consultas, que responde a consultas
SELECTrepetidas directamente con resultados almacenados en caché. - Las proyecciones, que precalculan datos durante la inserción y que ClickHouse puede seleccionar automáticamente, y las vistas materializadas, que almacenan resultados precalculados en una tabla de destino independiente que las consultas pueden leer directamente.
Control y limitación de la concurrencia
De forma predeterminada, ClickHouse OSS no limita el número de consultas simultáneas. ClickHouse Cloud establecemax_concurrent_queries_for_all_users en 1000 de forma predeterminada. Puede configurar límites en varios niveles:
max_concurrent_querieslimita el número total de consultas ejecutadas simultáneamente en el servidor.max_concurrent_insert_queriesymax_concurrent_select_queriesaplican el mismo límite, por separado, a las consultasINSERTySELECT. Los tres tienen un valor predeterminado de0(sin límite).max_concurrent_queries_for_userymax_concurrent_queries_for_all_userslimitan la concurrencia por usuario o para todos los usuarios.
Aislamiento de cargas de trabajo
Para evitar que las cargas de trabajo simultáneas interfieran entre sí, ClickHouse proporciona:- Planificación de cargas de trabajo para regular cómo se comparten la CPU, la memoria y las operaciones de E/S entre las cargas de trabajo.
- Cuotas para limitar el uso de recursos por usuario durante un intervalo de tiempo.
- Restricciones sobre la complejidad de las consultas para evitar que consultas individuales consuman recursos excesivos.
- Control de acceso basado en roles integrado para delimitar qué puede consultar cada usuario.