TXSQL count(expr)优化
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Área
- databases, performance
Línea de trabajo
Comienza rastreando el manejo de count(expr) a través de las comprobaciones nullable e is_null de Item en el motor SQL, y luego sigue cómo el motor de almacenamiento convierte las columnas en TABLE::record[0]. Verifica el comportamiento para una columna NOT NULL fuera del lado interno de un LEFT JOIN y compáralo con count(*) o count(0). Se considera terminado cuando la ruta de consulta elegible evita la sobrecarga de conversión de columnas y reproduce la mejora de rendimiento informada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
在TXSQL中,count star会转换为count(0),count star、count(0)、count(1)等价,表示计数时包含null值。而count(col)则不包含null值。
在存储引擎,count(col)需要转换col列到TABLE::record[0]中,因此存在格式转换开销。而count(0)不存在额外需要拷贝的列。
在SQL engine,通过Item判断nullable属性以及is_null属性。
如果count(expr)中的expr能够在优化阶段提前确定绝对不会为null,比如count(t.col),t不是left join内表,同时col定义为not null。此时
count(expr)实际可以转换为count star,从而也当作count(0)处理。从而可以减少格式转换开销。
下面是一个简单的测试:其中l_shipdate列定义为not null,而格式转换开销的消除使得查询变快了15%+。
- Lenguaje dominante
- C++
- Estrellas
- 338
- Forks
- 235
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de OpenTenBase/TXSQL
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
OpenTenBase/TXSQL#95 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
OpenTenBase/TXSQL#57 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 32/100
OpenTenBase/TXSQL#113 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
OpenTenBase/TXSQL#112 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
OpenTenBase/TXSQL#111 ·
Todos los issues de OpenTenBase/TXSQL
Issues similares
-
ai_reviewed
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
ydb-platform/ydb#53869 · 3 comentarios ·
-
bug cert blocker needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
project-chip/connectedhomeip#74373 ·
-
[request] tracy/0.14.1 Abiertoupstream update
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
conan-io/conan-center-index#31035 ·
-
Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
vllm-project/vllm-ascend#17329 ·