Saltar al contenido principal
El nuevo ajuste allow_asynchronous_read_from_io_pool_for_merge_tree permite que el número de hilos de lectura (streams) sea mayor que el número de hilos en el resto del pipeline de ejecución de la consulta. Normalmente, el ajuste max_threads controla el número de hilos de lectura en paralelo y de hilos de procesamiento de consultas en paralelo: Los datos se leen «en orden», columna a columna, desde el disco.

Lectura asíncrona de datos

La nueva configuración allow_asynchronous_read_from_io_pool_for_merge_tree permite que el número de hilos de lectura (streams) sea mayor que el número de hilos del resto del pipeline de ejecución de la consulta para acelerar las consultas en frío en servicios de ClickHouse Cloud con pocos recursos de CPU y aumentar el rendimiento de las consultas limitadas por la E/S. Cuando esta configuración está habilitada, el número de hilos de lectura se controla mediante la configuración max_streams_for_merge_tree_reading: Los datos se leen de forma asíncrona, en paralelo, desde distintas columnas. Tenga en cuenta que también existe la configuración max_streams_to_max_threads_ratio para definir la proporción entre el número de hilos de lectura (streams) y el número de hilos del resto del pipeline de ejecución de la consulta. Sin embargo, en las pruebas de rendimiento no resultó tan útil como la configuración max_streams_for_merge_tree_reading

¿Y optimize_read_in_order?

Con la optimización optimize_read_in_order, ClickHouse puede evitar reordenar los datos en memoria si el orden de clasificación de las consultas refleja el orden físico de los datos en disco, pero eso requiere leer los datos en orden (a diferencia de la lectura asíncrona):

La optimización optimize_read_in_order tiene prioridad sobre la lectura asíncrona

Cuando ClickHouse detecta que puede aplicarse la optimización optimize_read_in_order, se ignorará o deshabilitará la configuración allow_asynchronous_read_from_io_pool_for_merge_tree.

Ejemplo que demuestra todo lo anterior

  • Cree y cargue la tabla UK Property Price Paid
  • Compruebe el valor configurado de max_threads (de forma predeterminada, es la cantidad de núcleos de CPU que ClickHouse ve en el nodo que ejecuta la consulta
  • Comprueba el pipeline de consulta con el número predeterminado de hilos tanto para leer como para procesar los datos
  • Compruebe el pipeline de la consulta con 60 hilos de lectura asíncrona y el número predeterminado de hilos para el resto del pipeline de ejecución de la consulta
  • Compruebe el pipeline de consulta con 20 hilos tanto para leer como para procesar los datos
  • Compruebe el pipeline de consulta con 60 hilos de lectura asíncrona y 20 hilos para el resto del pipeline de ejecución de la consulta
  • Verifique el pipeline de consulta con 60 hilos de lectura asíncrona y 20 hilos para el resto del pipeline de ejecución de la consulta cuando puede aplicarse optimize_read_in_order optimization
Última modificación el 3 de julio de 2026