Todos los productos
Search
Centro de documentos

PolarDB:PolarDB for MySQL 8.0.1 release notes

Última actualización: Sep 16, 2026

Este tema proporciona las notas de la versión para PolarDB for MySQL 8.0.1.

2026

8.0.1.1.57 (2026.09.15)

Nuevas funciones

Descripción

  • Se añadió el vaciado de páginas sucias asistido por PolarFS. Los nodos RW habilitan automáticamente esta configuración al iniciar, por lo que no es necesario configurarla manualmente.

  • Los índices de texto completo de In-Memory Column Index (IMCI) ahora admiten puntuación BM25, consultas de frases, consultas compuestas y sinónimos.

  • Se incorporó una optimización de diccionario local AdaptHashAggr para GROUP BY en In-Memory Column Index (IMCI). La variable de sesión imci_enable_adapt_hash_aggr_local_dict está deshabilitada de forma predeterminada. Al habilitarla, se reducen las sondas repetidas a la tabla hash en consultas directas de TableScan que agrupan entre una y cuatro columnas de cadena desde el diccionario local del pack actual. Esto mejora el rendimiento de agregación de GROUP BY para cadenas de baja cardinalidad sin alterar la semántica de la consulta.

  • Orca (compatible with the Redis protocol) ahora admite la estructura de datos probabilística nativa HyperLogLog de Redis para calcular cardinalidades.

  • La función hot row optimization ahora admite flush status para actualizar las estadísticas, lo que facilita observar los cambios incrementales durante las pruebas.

Optimizaciones de rendimiento

Descripción

  • Se optimizaron las consultas que contienen listas IN grandes.

  • Se optimizó el tiempo de retención del bloqueo de SHOW BINARY LOGS para evitar que los escaneos de archivos de registro binario grandes afecten las confirmaciones de transacciones.

  • Se redujo el consumo de memoria de information_schema.INNODB_LOG_INFO para disminuir la sobrecarga cuando se acumulan registros redo.

  • Se optimizaron las consultas de paginación profunda en In-Memory Column Index (IMCI) mediante el modo de ejecución QuickSelect TopK, que reemplaza la ordenación completa. Esto reduce la sobrecarga de ordenación en desplazamientos y conjuntos de resultados grandes.

Correcciones de bugs

Descripción

  • Se corrigió un problema donde las operaciones concurrentes DROP DATABASE y SHOW ENGINE INNODB STATUS, en un escenario multimaster, podían leer páginas de bloqueo DD no válidas y provocar la caída de un nodo RW.

  • Se corrigió un problema donde los predicados de subconsulta comparativos ALL o ANY bajo NOT(NOT ...) podían evaluar silenciosamente TRUE como FALSE. También se añadió cobertura de pruebas en main.all_any_double_not para escenarios de clonación y pushdown de PQ, matriz de comparación, valores NULL o vacíos, y sentencias preparadas.

  • Se solucionó un error por el cual una sesión inactiva en un escenario de Hybrid Plan almacenaba en caché un ReadView antiguo e impedía el avance de Undo Purge.

  • Se corrigió una caída del proceso durante la optimización de consultas cuando el encabezado de un archivo .tab_stat de In-Memory Column Index (IMCI) estaba dañado. Ahora el sistema degrada correctamente hacia estadísticas vacías tras un fallo de validación de lectura y escribe los archivos de estadísticas de forma atómica.

  • Se corrigió el error ERROR 3142 Invalid JSON text, que ocurría cuando las consultas paralelas aplicaban GROUP BY u ORDER BY a resultados de funciones JSON enviadas por pushdown. El problema se debía a que el JSON binario se truncaba incorrectamente por conjunto de caracteres durante la clonación de campos de la tabla de intercambio.

  • Se corrigió una caída provocada por excepciones ocasionales de reproducción en un nodo de solo lectura con High-Compression Engine (X-Engine), las cuales dejaban referencias de metadatos inconsistentes respecto al nodo RW.

  • Se solucionó una caída de mysqld causada porque el ORDER BY de agregación en una consulta SELECT DISTINCT se publicaba incorrectamente como clave de grupo de una tabla temporal.

  • Se corrigió un error donde el recorrido completo de metadatos de particiones de una tabla particionada LIST DEFAULT omitía la partición predeterminada.

  • Se solucionó un problema por el cual las actualizaciones frecuentes de páginas activas en un nodo RW permitían que un nodo RO leyera datos futuros.

  • Se corrigió un error donde las sentencias preparadas retrocedían en tiempo de ejecución porque el ordenamiento adaptativo no era compatible. Esto hacía que las consultas ORDER BY LIMIT eligieran un índice de ordenación y se volvieran lentas.

  • Se solucionó un problema donde una consulta por prefijo de índice compuesto en una tabla subparticionada LIST DEFAULT podía omitir incorrectamente datos de la partición DEFAULT.

  • Se corrigió un problema de compatibilidad en el que el escalado elástico, dentro de un escenario multimaster serverless, podía generar E/S y provocar una caída.

  • Se solucionó una aserción con una TABLE vacía en fix_fields, ya que las subconsultas escalares, anidadas, EXISTS e IN en parámetros de Native Procedure no se rechazaban a tiempo.

  • Se corrigió un error donde una consulta que usaba únicamente una clave de partición hash secundaria podía omitir datos de una partición LIST DEFAULT.

  • Se solucionó un problema por el cual las consultas de índice secundario omitían filas de forma intermitente después de ejecutar index_merge en una tabla particionada.

  • Se corrigió una caída del proceso de base de datos causada por DuplicateWeedout al acceder a registros no inicializados cuando seleccionaba un plan de tabla externa temporal. Con esto se evita el acceso fuera de límites a los registros de la tabla temporal.

  • Se solucionó una alineación de tipos incorrecta en operaciones de unión no equitativa que usan una unión con versión de formato de fila de In-Memory Column Index (IMCI).

  • Se corrigió una caída del proceso del servidor que podía ocurrir al ejecutar repetidamente sentencias preparadas remote_exec_cmd en un escenario multimaster.

  • Se solucionó un error donde los identificadores de esquema y tabla excesivamente largos en dbms_dts no se validaban, lo que les permitía llegar al procesamiento de metadatos y desencadenar aserciones.

  • Se añadió compatibilidad con JSON hybrid index (mode = 3) en In-Memory Column Index (IMCI). Ahora expresiones como json_contains_path/json_unquote/json_type/json_length/json_keys/json_depth pueden usar el índice para acelerarse, y json_overlaps/json_contains/json_extract admiten búsquedas de objetos y matrices de objetos.

  • Se corrigió una caída del servidor cuando una sesión sin base de datos predeterminada accedía a una vista DEFINER con un rol predeterminado activo.

  • Se solucionó una duración excesiva del bloqueo MDL X, provocada por la limpieza lenta de información de índices auxiliares durante operaciones DDL con AHI habilitado.

  • Se corrigió un error donde el orden de validación de operaciones DDL de particiones híbridas en In-Memory Column Index (IMCI) devolvía un código de error incorrecto. Ahora se mantiene el manejo de errores esperado del motor de almacenamiento.

  • Se solucionó una caída del proceso causada por la pérdida de metadatos temporales de LEAST() o GREATEST() durante el pushdown de condiciones derivadas.

  • Se corrigieron fallos de registro que ocurrían cuando un nodo RO local en un escenario multimaster cambiaba a RW antes de que el nodo RW original completara su desconexión asíncrona en CC.

  • Se solucionó un problema donde los archivos incompletos que quedaban tras fallar la inicialización del registro redo hacían que los reintentos posteriores fallaran y podían detener la instancia.

  • Se corrigió un error por el cual el SQL dinámico ejecutado con PREPARE y EXECUTE en procedimientos almacenados generaba registros de auditoría adicionales y conteos acumulados de filas escaneadas.

  • Se corrigió un bucle infinito de intercambio de rowbuf que ocurría cuando la compactación de ordenación de In-Memory Column Index (IMCI) tenía identificadores de fila preasignados que no se procesaban durante el apagado. También se solucionaron los puntos de control NCI incompletos causados por puntos de control concurrentes y DROP INDEX.

  • Se solucionó una excepción de puntero nulo que surgía cuando la poda de columnas de consultas concurrentes, posterior a instant column addition, accedía a una columna nueva con metadatos inconsistentes respecto a la versión anterior en In-Memory Column Index (IMCI).

  • Se corrigió una fuga de memoria que podía ocurrir al apagar un escenario multimaster con estadísticas de espacio inactivo habilitadas.

  • Se solucionó un error donde el módulo Physical en la programación de memoria de In-Memory Column Index (IMCI) no limitaba las concesiones según la solicitud y el margen de marca de agua. Esto provocaba amplificación de memoria LRU y fugas de memoria en cgroup.

  • Se corrigió un problema por el cual la fusión global de registros podía pausarse durante operaciones DDL paralelas multihilo, como OPTIMIZE, en un escenario multimaster.

8.0.1.1.56.1(2026.08.16) & 8.0.1.1.56 (2026-08-07)

Nuevas funciones

Descripción

  • In-Memory Column Index (IMCI) incorpora el operador QuickSelect, que utiliza el algoritmo quickselect O(n) para admitir eficientemente consultas de cuantiles y evitar la sobrecarga de la ordenación completa.

  • PolarDB AutoETL admite actualizaciones in situ de vistas y enlaces (inplace-update), autorización de sincronización entre múltiples clústeres, parámetros ETL personalizados y sincronización global de metadatos.

  • Orca (compatible with the Redis protocol) admite el comando monitor de Redis, que devuelve todos los comandos procesados por Orca.

  • Orca admite la estructura de datos Stream, incluidos 15 comandos de Redis como XADD, XDEL, XLEN, XRANGE, XREAD y XREVRANGE.

  • Orca añade compatibilidad con los comandos relacionados con el tipo de datos de índices geoespaciales de Redis.

Optimizaciones de rendimiento

Descripción

  • Se optimizaron las estrategias de robo de tareas multicola y balanceo de carga de Simulated AIO y del procesador Orca.

  • En consultas que usan la función JSON_OVERLAP sobre columnas con un índice de texto completo de IMCI, el optimizador puede usar la información del índice para estimar la cardinalidad con precisión.

Correcciones de bugs

Descripción

  • Se corrigió un defecto de sincronización entre la apertura diferida de tablas temporales MEMORY para CTE compartidas y la optimización de rango secundario skip-sort.

  • Se solucionó un problema donde las consultas de frases ngram de InnoDB FTS podían devolver resultados incompletos al usar LIMIT.

  • Se corrigió un error por el cual las reducciones de escala consecutivas de un clúster serverless desencadenaban una reducción en línea del buffer pool que se bloqueaba durante mucho tiempo, lo que detenía o hacía caer el clúster.

  • Se solucionó un problema donde una consulta GROUP BY con una cláusula HAVING con alias podía causar una caída bajo consulta paralela.

  • Se corrigió un error por el cual un nodo de solo lectura podía reiniciarse inesperadamente cuando el control de versiones múltiples y el análisis paralelo de registros estaban habilitados.

  • Se solucionó un problema donde INSERT ON DUPLICATE KEY UPDATE podía actualizar la fila incorrecta cuando varias sesiones insertaban datos simultáneamente en una tabla con una columna de incremento automático.

  • Se corrigió un error por el cual PolarDB podía usar una secuencia de lectura de IMCI invalidada al reutilizar una Shared Read View en escenarios de Hybrid Plan. Esto evita anomalías de visibilidad en los resultados de consulta causadas por reutilizar una secuencia de confirmación antigua después de cerrar las referencias adicionales de una vista de lectura.

  • Se solucionó un problema donde, tras una conmutación por error de alta disponibilidad, las escrituras posteriores o la creación de índices en escenarios con apertura diferida de tablespaces podían hacer que el clúster terminara inesperadamente.

  • Se corrigió un error por el cual, si no se podía obtener un bloqueo MDL durante la fase DD SCAN, solo se reportaba un error y los datos de IMCI no se podían recuperar.

  • Se solucionó un problema donde la ejecución repetida del preprocesamiento de vistas para funciones de ventana causaba una caída.

  • Se corrigió una caída por puntero nulo en la estimación de costos de skip_scan cuando una subconsulta en un worker de consulta paralela usa DynamicRangeIterator.

  • Se solucionó un error donde, para tablas con caracteres especiales, el acceso posterior al clúster fallaba tras el fallo de una sentencia DDL.

  • Se corrigió un problema donde el acceso concurrente a objetos page_hash obsoletos, durante el cambio de tamaño en línea del buffer pool de InnoDB, provocaba la caída de mysqld.

  • Se solucionó un error por el cual la ejecución de consultas detalladas con campos grandes en IMCI podía fallar debido a memoria insuficiente.

  • Se corrigió un problema donde las operaciones concurrentes com_change_user y las consultas show processlist/is.processlist provocaban la caída del clúster.

  • Se solucionó un error donde las escrituras redo de división incompletas de IMCI impedían el avance de checkpoint_lsn.

  • Se corrigió un problema por el cual, en tablas grandes de High-Compression Engine (X-Engine), una gran desviación del index dive en consultas RANGE provocaba la selección de un plan de ejecución incorrecto.

  • Se solucionó un error donde IMCI podía fallar al ejecutar sentencias SQL que contenían ROLLUP o funciones de ventana.

  • Se corrigió un problema donde DBMS_DTS show_parallel_ranges con un argumento NULL podía hacer que el clúster terminara inesperadamente.

  • Se solucionó un error por el cual la captación previa de múltiples columnas del rowbuf de IMCI, bajo presión de memoria, generaba cachés de pack con datos faltantes. Esto causaba inconsistencias entre el almacenamiento por filas y por columnas en consultas columnares.

  • Se corrigieron errores que podían ocurrir cuando la función de importación rápida para restauración de bases de datos y tablas accedía a campos BLOB.

  • Se solucionó un problema donde, en tablas con un alto número de valores distintos (NDV), la función ANY_VALUE sobre columnas de cadena podía devolver incorrectamente valores NULL al aplicar GROUP BY.

  • Se corrigió un error por el cual una consulta podía fallar cuando una subconsulta de UNION o UNION ALL con GROUP BY devolvía una cadena constante.

  • Se solucionó un error de falta de memoria (OOM) que ocurría durante la fase de aplicación incremental de una operación DDL cuando se acumulaban demasiados rowlogs de DDL inplace.

  • Se corrigió un problema donde, en algunos casos, las funciones de ventana no se podían ejecutar en IMCI, y el pushdown de GROUP BY podía impedir que las consultas se ejecutaran en IMCI.

  • Se solucionó un error por el cual innodb_log_buffer_size no se podía modificar dinámicamente después de deshabilitar de forma dinámica el parámetro innodb_polar_log_rdma_transfer.

  • Se corrigió un escenario de lectura fuera de límites en marcos de ventana para funciones de ventana mediante la mejora de la lógica de manejo de bordes.

  • Se solucionó un problema donde el optimizador híbrido podía causar la caída del clúster debido a un plan de semijoin anómalo.

8.0.1.1.55.3 (2026-07-25) & 8.0.1.1.55.2 (2026-07-18)

Correcciones de bugs

Descripción

  • Se corrigió un problema donde la pérdida ocasional de registros de eliminación en In-Memory Column Index (IMCI) causaba caídas en nodos de solo lectura e inconsistencia de datos entre el almacenamiento por filas y por columnas.

8.0.1.1.55.1 (2026-06-28) & 8.0.1.1.55 (2026-06-18)

Nuevas funciones

Descripción

  • Se añadió la función incremental refresh for materialized views, una evolución de la actualización completa de vistas materializadas que admite actualizaciones incrementales y mejora significativamente el rendimiento de este proceso.

  • Los índices de texto completo de In-Memory Column Index (IMCI) ahora admiten diccionarios personalizados. Esto permite usar diccionarios específicos del negocio para mejorar la calidad de búsqueda en textos en chino y nombres propios.

  • What is Orca (Redis-Compatible) admite la función multi-DB de Redis, con soporte para hasta 16 bases de datos lógicas.

  • Las vistas materializadas ahora permiten crear un In-Memory Column Index (IMCI) con claves de ordenación para optimizar aún más su rendimiento de consulta.

  • Se agregó un nuevo interruptor para permitir que la función Data Cleanup (TTL) escriba en los registros binarios. Está deshabilitado de forma predeterminada. Al habilitarlo, puede sincronizar eventos de eliminación TTL con sistemas descendentes mediante registros binarios, lo que garantiza la consistencia de datos entre los sistemas ascendentes y descendentes.

  • What is Orca (Redis-Compatible) añade cinco comandos de bloqueo (BLMOVE, BLMPOP, BZMPOP, BZPOPMAX y BZPOPMIN) para mejorar la compatibilidad con el protocolo de Redis.

  • Se incorporó una función que permite a las consultas de IMCI enviar por pushdown GROUP BY durante la fase de optimización, mejorando el rendimiento al delegar las operaciones de agregación.

  • Se añadió la sintaxis EXPLAIN ANALYZE IMCI, útil para diagnosticar estados intermedios de planes de ejecución SQL e identificar por qué una sentencia no utiliza un plan del motor vectorizado.

  • Ahora se admite el uso de adaptive selection of ordered indexes varias veces en una misma sentencia. Además, se corrigió un problema donde el ordenamiento adaptativo provocaba caídas en escenarios específicos.

Optimizaciones de rendimiento

Descripción

  • El almacenamiento de IMCI, con codificación de diccionario local habilitada de forma predeterminada, admite la reescritura y optimización de consultas para columnas de cadena que usan esta codificación, lo que mejora el rendimiento de las consultas columnares.

  • Se optimizó la eficiencia de ejecución de sentencias SQL que siguen el patrón GROUP BY ... ORDER BY ... LIMIT k. Se utiliza el operador TopAgg para podar operaciones de agrupación y agregación, conservando solo K elementos. Esto reduce significativamente el tiempo de consulta en escenarios con grandes volúmenes de datos y agrupaciones.

  • Se ampliaron las capacidades de análisis de rendimiento de EXPLAIN ANALYZE de In-Memory Column Index (IMCI) con métricas como la proporción de volcado a disco de uniones y la longitud de las claves de unión, lo que facilita identificar consultas lentas.

  • Se optimizó el rendimiento de HashJoin de In-Memory Column Index (IMCI) al convertir los resultados intermedios de la unión a formato de fila, reduciendo así la sobrecarga de materialización.

Correcciones de bugs

Descripción

  • Se corrigió una caída potencial que ocurría cuando una vista materializada incremental leía metadatos de particiones en una tabla con particiones híbridas.

  • Se solucionó una caída potencial del proceso mysqld causada por la reutilización incorrecta de memoria relacionada con sugerencias SQL, como SET_VAR, al llamar varias veces a un procedimiento almacenado.

  • Se corrigió un fallo que ocurría al ejecutar una sentencia Online DDL en una tabla con un índice de columna virtual.

  • Se solucionó un problema por el cual la memoria LRU_RB_BLOCK podía filtrarse desde la caché RowBuf de IMCI en una ruta de fallo de inserción. Esto evitaba que la memoria de RowBuf Block Cache creciera continuamente más allá de su capacidad esperada.

  • Se corrigió una caída del proceso causada por el acceso concurrente a un MDL Ticket durante la ejecución de Elastic Parallel Query.

  • Se solucionó un error por el cual varios hilos podían entrar en interbloqueo dentro de un B-tree cuando la consulta paralela estaba habilitada en el nodo principal.

  • Se corrigió un problema donde una operación LOAD DATA fallida dejaba la sesión en un estado anómalo, lo que provocaba errores en sentencias INSERT válidas posteriores.

  • Se solucionó una fuga de memoria que podía ocurrir en casos poco frecuentes con Parallel Parse habilitado.

  • Se corrigió un error por el cual filesort se omitía incorrectamente en algunas ocasiones para una TempTable con índice ordenado, lo que resultaba en un orden de resultados incorrecto.

  • Se solucionó un problema donde el control de uso total de disco para tablas temporales no excluía a los usuarios con permisos Super.

  • Se corrigió un fallo de análisis sintáctico en el enlace de sincronización DTS hacia un clúster PolarDB descendente. Este problema ocurría cuando la sintaxis extendida ALTER de PolarDB, como convertir una tabla única en una particionada, estaba encapsulada por comentarios de DMS.

  • Se solucionó un problema de imprecisión en la limitación de velocidad adaptativa para DDL Bulk Load y se optimizó dicho algoritmo.

  • Se corrigió un error por el cual un fallo en el enrutamiento por desbordamiento de tamaño de página, durante la limpieza de metadatos RowBuf de IMCI, causaba escrituras sucias. Esto provocaba que las tareas en segundo plano posteriores desencadenaran una aserción o una caída.

  • Se solucionó un problema donde High-Compression Engine (X-Engine) fallaba al ejecutar manualmente ANALYZE TABLE en una tabla particionada para recopilar estadísticas.

  • Se corrigió un error por el cual el orden declarado en una cláusula ORDER BY no se aplicaba en algunos escenarios. Esta versión también optimiza el manejo de predicados para Loose Index Scan (LIS) en consultas agrupadas.

  • Se solucionó un problema donde un nodo local de solo lectura en un Multi-master Cluster no lograba omitir los registros redo de otros nodos master cuando Parallel Parse estaba habilitado.

  • Se corrigió un error por el cual el In-Memory Column Index (IMCI) quedaba invalidado e inutilizable tras ejecutar una sentencia DDL en una tabla particionada para modificar su comentario, añadir un In-Memory Column Index (IMCI) y agregar simultáneamente un índice secundario normal.

  • Se solucionó un problema donde una consulta de almacenamiento por columnas que usaba Hybrid Index Search con una cláusula LIMIT podía retroceder al almacenamiento por filas si el LIMIT OFFSET era demasiado grande.

  • Se corrigió un error por el cual INSTANT ADD COLUMN podía causar excepciones de aplicación en un nodo de solo lectura (RO) cuando la optimización de uso compartido de dummy_index estaba habilitada.

  • Se solucionó un problema en In-Memory Column Index (IMCI) donde un Hybrid Plan podía causar la caída del clúster al revocar una Read View.

  • Se corrigió un error por el cual los registros Redo aplicados de forma incompleta podían causar inconsistencia de datos en High-compression Engine (X-Engine) durante la recuperación de bases de datos y tablas (como PITR y clonación). Ahora se garantiza la integridad de los datos tras la restauración.

  • Se solucionaron diversos problemas de incompatibilidad que ocurrían en Multi-master Clusters cuando Parallel Parse estaba habilitado.

  • Se corrigió un problema de escape incorrecto de cadenas que podía ocurrir cuando PolarDB AutoETL creaba una vista de búsqueda que contenía un ETL_UDF.

  • Se solucionó un error por el cual el tiempo de espera de bloqueo de fila de tabla del motor What Is X-Engine no se incluía en el tiempo de espera de bloqueo del registro de consultas lentas del sistema.

  • Se corrigió un problema de planes de ejecución subóptimos causado por una estimación de umbral incorrecta al convertir una consulta de almacenamiento por columnas con una lista IN de múltiples columnas, como WHERE (a,b) IN (...), en un semijoin.

  • Se solucionó un error por el cual los registros históricos de tareas de Data cleanup (TTL) no se escribían durante una actualización del clúster. Ahora la información histórica de TTL se puede consultar y limpiar correctamente.

  • Se corrigió un problema donde la purga de registros binarios durante el inicio de MySQL Community Edition podía generar un Previous_gtid incorrecto.

  • Se solucionó un error por el cual Query Cache desencadenaba prematuramente una espera de global consistency (high-performance mode) de InnoDB, lo que causaba tiempos de espera agotados por retraso de replicación en nodos de solo lectura de In-Memory Column Index (IMCI).

  • Se corrigió un problema en What is Orca (Redis-Compatible) donde los scripts Lua podían causar una fuga de memoria bajo condiciones de error esporádicas.

  • Se solucionó un posible error en los resultados de consultas paralelas cuando la consulta contenía una condición IS NULL.

  • Se corrigió un error por el cual Hash Field-TTL de Orca (Redis-protocol compatible) podía actualizar metadatos incorrectamente durante la fase Purge.

  • Se solucionó un problema de la función Orca (compatible with the Redis protocol) donde el resultado del comando DUMP no era reconocido por versiones anteriores de Redis (<7.4.0).

  • Se corrigió una caída en MySQL Community Edition causada por una excepción al actualizar un índice espacial que también funcionaba como índice secundario.

8.0.1.1.54.1 (2026-05-08)

Correcciones de bugs

Descripción

  • Se añadió un nuevo parámetro, mm_enable_wait_binlog_flush, que permite a Multi-master Cluster (Limitless) Edition esperar a que el registro binario se vacíe al disco. Esto resuelve posibles problemas de consistencia de datos causados por el vaciado asíncrono del registro binario.

  • Se corrigió un problema donde Multi-master Cluster (Limitless) Edition fallaba al ejecutar DROP TABLE en una tabla CSV que utilizaba la función de archivado de datos fríos.

8.0.1.1.54 (2026-03-24)

Nuevas funciones

Descripción

  • Se añadió la función Search View para PolarSearch, que habilita Auto-ETL desde PolarDB for MySQL hacia PolarSearch y simplifica la sincronización de datos.

  • El formato tradicional de tabla comprimida de InnoDB presenta riesgo de corrupción de datos cuando BLOCK_SIZE es menor que 4. Se añadió la variable de sistema polar_compressed_table_policy para controlar la política de compresión de las tablas nuevas.

    • NATIVE: ejecuta la operación tal cual.

    • ADJUST_KEY_BLOCK_SIZE (predeterminado): permite crear la tabla y corrige automáticamente KEY_BLOCK_SIZE si es menor que 4.

    • AUTO_CONVERT_ROW_FORMAT: convierte la tabla silenciosamente al formato de fila predeterminado.

    • REJECTED: rechaza la operación y reporta un error.

    Nota
    • Esta política aplica únicamente a tablas comprimidas nuevas. Las tablas comprimidas existentes no se ven afectadas.

    • Para clústeres con una versión del kernel anterior a 8.0.1.1.54, se recomienda no crear tablas comprimidas de InnoDB con un BLOCK_SIZE menor que 4.

  • Ahora puede usar la expresión ask_polar para conectarse directamente a Alibaba Cloud Model Studio.

  • La función Data Cleanup (TTL) ahora admite campos DATETIME (anteriormente solo admitía campos TIMESTAMP).

Optimizaciones de rendimiento

Descripción

  • Se optimizó la velocidad de recuperación de estructuras de metadatos para High-compression engine (X-Engine) durante los reinicios, lo que reduce el tiempo de reinicio.

Correcciones de bugs

Descripción

  • Se corrigió un problema donde, al usar la función de preservación de estado de transacciones para failover with hot replica, la pérdida ocasional de transacciones en columnstore index (IMCI) causaba inconsistencia de datos.

  • Se solucionó un error por el cual una excepción de memoria durante una operación asíncrona de instant column addition con un valor predeterminado de cadena larga invalidaba dicho valor.

  • Se corrigió un problema donde el proceso optimizado de muestreo de histogramas bloqueaba continuamente las operaciones DML.

  • Se solucionó un error en IMCI donde una condición de filtro se enviaba incorrectamente por pushdown más allá de una cláusula LIMIT, lo que podía generar resultados incorrectos.

  • Se corrigió un problema por el cual no se podían leer inmediatamente los resultados más recientes tras un full refresh of a materialized view cuando Query Cache está habilitado.

  • Se solucionó un error que podía ocurrir al recopilar estadísticas para In-Memory Column Index (IMCI) con la mejora de muestreo de columnas de baja cardinalidad (imci_stats_scan_max_ndv) habilitada, lo que impedía actualizar correctamente las estadísticas.

  • Se corrigió una caída causada por enviar por pushdown una expresión que contenía Item_trigger_field al lado interno de una tabla derivada.

  • Se solucionó un posible error de análisis sintáctico de sentencias SQL al usar dbms_outln.add_optimizer_outline_sharding en una tabla fragmentada.

  • Se corrigió un error que ocurría al ejecutar ALTER TABLE ... ADD COLUMN ... DEFAULT con el registro binario habilitado.

  • Se solucionó un problema donde las estadísticas de cardinalidad mostradas con la sintaxis SHOW INDEX para una tabla particionada eran NULL.

  • Se corrigió un error que podía causar la caída de Orca (compatible with the Redis protocol) al limpiar claves expiradas con pcur. Para ello, se reemplazó el método pcur por un método de almacenamiento de claves.

  • Se solucionó un problema donde Concurrency Control (CCL) no surtía efecto con la sintaxis DELETE xx FROM ... (esto no afecta a la sintaxis DELETE FROM ...).

  • Se corrigió una caída que podía ocurrir ocasionalmente con JSON_TABLE en la ruta de ejecución de un trigger.

  • Se solucionó un error por el cual un desbordamiento de entero INT en el sistema de archivos NCI de In-Memory Column Index (IMCI), tras un tiempo prolongado de ejecución, provocaba un acceso a memoria fuera de límites y detenía la reproducción de transacciones IMCI.

8.0.1.1.53.1 (2026-07-02) & 8.0.1.1.53 (2026-01-24)

Nuevas funciones

Descripción

Optimizaciones de rendimiento

Descripción

  • Se optimizó el mecanismo de gestión de metadatos para high-compression engine (X-Engine). Al liberar periódicamente el manifest log y las versiones antiguas del manifest checkpoint, esta optimización evita el consumo adicional de almacenamiento causado por el crecimiento continuo de los archivos de metadatos.

  • Se optimizó la eficiencia de lectura y escritura de E/S de los archivos de índice de registro binario. Esto previene retrasos o interrupciones en la confirmación de transacciones causados por contención de E/S cuando un clúster tiene muchos archivos de registro binario.

  • Se mejoró el rendimiento de consulta de IMCI para consultas que contienen una lista IN de cadenas extremadamente largas.

  • Se optimizó la eficiencia de ejecución de la agrupación y agregación (HashGroupby). Al introducir una operación vectorizada para sondear la tabla hash, esta optimización mejora el rendimiento de agrupación y agregación, y reduce ligeramente el consumo de memoria durante el cálculo.

  • Se optimizó el proceso de búsqueda del plan de consulta para acelerar la determinación del orden de unión de múltiples tablas. Esto reduce el tiempo total de optimización de sentencias SQL complejas.

  • Se eliminó el límite en la cantidad de tablas particionadas.

Correcciones de bugs

Descripción

  • Se corrigió un problema en IMCI donde el operador HashJoin de alto rendimiento podía causar la pérdida de filas en el conjunto de resultados al procesar un RIGHT JOIN y volcar datos al disco.

  • Se solucionó un error por el cual el optimizador estimaba de forma imprecisa el número de filas para un escaneo de índice ordenado en ciertas rutas de consulta.

  • Se corrigió un problema donde las estadísticas podían no recopilarse como se esperaba para columnas de cadena con conjuntos de caracteres anchos, como utf8, incluso si se definían con una longitud corta.

  • Se solucionó un error por el cual la replicación en un columnstore index read-only node se detenía ocasionalmente durante operaciones DDL frecuentes, lo que generaba latencia de datos en el nodo.

  • Se corrigió un problema de acceso a memoria fuera de límites que podía ocurrir con una sentencia LIMIT BY ? que contenía un marcador de posición al usar el protocolo binario.

  • Se solucionó una caída potencial del clúster que ocurría al acceder a una tabla particionada de high-compression engine (X-Engine) con la caché de consultas habilitada.

  • Se corrigió un problema por el cual la PCU de un nodo serverless para In-Memory Column Index (IMCI) podía escalar repetidamente hacia arriba y hacia abajo cuando el nodo tenía especificaciones bajas y ninguna carga.

2025

8.0.1.1.52 (2025-12-12)

Nuevas funciones

Descripción

  • Se añadió la función Search View and ETL Stored Procedure. Esta función sincroniza automáticamente los datos de PolarDB for MySQL hacia los nodos de búsqueda para mejorar las capacidades de sincronización de datos y el análisis agregado de grandes volúmenes de información.

  • Se introdujo la función Redo log compression para operaciones DDL. Con ella se reduce significativamente la cantidad de registros Redo generados durante la ejecución de DDL y mejora la eficiencia de las operaciones Redo.

  • Se añadió compatibilidad para especificar el nodo de ejecución en las tareas de actualización que ejecutan un full refresh of a materialized view.

  • Se incorporó la capacidad de lectura asíncrona de registros Redo en los nodos de agregación de un Multi-master Cluster. Esto aumenta la velocidad con la que dichos nodos fusionan los registros Redo.

  • Se agregó una métrica de monitoreo para la cantidad de pending tasks en Orca (compatible with the Redis protocol). Esta métrica muestra cuántas tareas esperan ejecución en la cola, lo cual facilita analizar y monitorear la latencia de las tareas.

  • Se añadió compatibilidad con patrones SQL específicos para IMCI. Ahora, las consultas complejas que contienen ROLLUP y tienen funciones en sus columnas de proyección, incluyendo subconsultas con funciones de agregación, también se pueden enviar a IMCI para acelerarlas.

  • Se añadió compatibilidad con índices de texto completo en In-Memory Column Index (IMCI), lo que mejora notablemente el rendimiento de las búsquedas difusas.

  • Se agregaron varias métricas de monitoreo principales para Orca (compatible with the Redis protocol), como conexiones activas, New Connections y uso de memoria, con el fin de mejorar la observability del clúster.

  • Se añadió un interruptor dinámico para controlar la función de ajuste de posición del cursor en los nodos de solo lectura (RO).

Optimizaciones de rendimiento

Descripción

  • Se optimizó la política de ejecución de consultas para In-Memory Column Index (IMCI) y se habilitó de forma predeterminada la ejecución adaptativa de agrupación y agregación. Esta función selecciona automáticamente el algoritmo de agregación más eficiente según la distribución de los datos y las características de la consulta, lo que mejora el rendimiento de las consultas analíticas que contienen una cláusula GROUP BY.

  • Se mejoró la eficiencia de ejecución del operador Hash Join en In-Memory Column Index (IMCI). Esta mejora incrementa el rendimiento de todas las consultas que usan Hash Join, con avances significativos en escenarios de Semi Join.

  • Se optimizó el rendimiento de Binlog large transaction optimization en escenarios de transacciones XA externas.

  • Se optimizó el mecanismo de gestión de metadatos de What Is X-Engine mediante la liberación periódica del manifest log y de versiones antiguas del manifest checkpoint. Así se evita el consumo adicional de almacenamiento provocado por el crecimiento continuo de los archivos de metadatos.

  • Se optimizó la sobrecarga de rendimiento al cambiar archivos de registro binario. Esto evita el bloqueo de confirmaciones de transacciones en escenarios donde se conservan muchos archivos de registro binario.

  • Se optimizaron la estructura interna de procesamiento de comandos y la ruta de bloqueo para Orca (compatible with the Redis protocol). Esta refactorización mejoró el rendimiento general de lectura y escritura en aproximadamente un 10 %.

Correcciones de bugs

Descripción

  • Se corrigió un problema en Orca (compatible with the Redis protocol) donde escribir una clave inmediatamente después de eliminarla provocaba que la información estadística de dbsize fuera inexacta.

  • Se solucionó un problema por el cual IMCI no admitía consultas que contenían campos de variables de sistema.

  • Se corrigió un fallo potencial en la recopilación de estadísticas de tablas con operaciones frecuentes de actualización y eliminación, y se mejoró la eficiencia del muestreo de datos.

  • Se solucionó un problema donde el comando restore de Orca (compatible with the Redis protocol) no conservaba la información TTL al restaurar un campo Hash expirado.

  • Se corrigió un problema por el cual la función serverless de In-Memory Column Index (IMCI) podía generar un error de falta de memoria (OOM) en escenarios de escalado vertical rápido seguido de un reducción rápida, debido a que la cuota de caché no se revocaba a tiempo.

  • Se solucionó un problema donde reiniciar un nodo IMCI para recuperar el índice de columnas podía provocar un inicio lento, ya que se cargaba una cantidad excesiva de archivos NCI irrelevantes.

  • Se corrigió un problema que podía devolver un conjunto de resultados incorrecto cuando la condición WHERE de una consulta contenía varias IN-lists con ordenamiento ORDER BY.

  • Se solucionó un problema que podía reportar un error de Duplicate entry al ejecutar operaciones DDL como RENAME TABLE sobre una tabla que contiene una vista después de un cambio por alta disponibilidad (HA).

  • Se corrigió un problema donde la operación NCI purge page para IMCI interfería en casos excepcionales con la eficiencia de la operación flush page.

  • Se solucionó una anomalía de sincronización de datos en el nodo de agregación de un Multi-master Cluster tras habilitar la función async reader. El origen era un cálculo incorrecto del desplazamiento de análisis sintáctico.

  • Se corrigió un problema donde el escalado automático de la función serverless para In-Memory Column Index (IMCI) se activaba continuamente debido a un estado anómalo del índice.

  • Se solucionó un problema en Multi-master Cluster (Limitless) Edition por el cual un nodo de lectura/escritura podía fallar al actualizar una vista materializada programada creada por otro nodo de lectura/escritura.

  • Se corrigió un problema de rendimiento donde un solo núcleo de CPU alcanzaba su uso máximo debido al tiempo excesivo que consumía la función find_cloned_select_lex cuando una consulta UNION contenía muchos query_blocks.

  • Se solucionó un problema donde el optimizador de consultas no lograba aplicar la poda de particiones en una tabla particionada interna al procesar una consulta de nested join. Esto mejora el rendimiento de las consultas en tablas particionadas para estos escenarios.

  • Se corrigió un problema donde In-Memory Column Index (IMCI) podía devolver resultados de multiplicación incorrectos al procesar datos DECIMAL con más de 16 dígitos después del punto decimal.

  • Se solucionó un problema que impedía enviar una consulta a In-Memory Column Index (IMCI) para su ejecución cuando la instrucción SELECT contenía tanto un IN-List como una función de agregación con DISTINCT.

  • Se corrigieron varios problemas que podían provocar la caída del clúster cuando el buffer pool size era mucho menor que la memoria requerida para las tablas materializadas.

  • Se solucionó un problema en la edición Multi-master Cluster (Limitless) donde eliminar un nodo de lectura/escritura después de un cambio de endpoint podía interrumpir tareas en segundo plano.

  • Se corrigió un posible bloqueo en un nodo en espera durante la fase de recuperación en escenarios de restauración a un momento dado (PITR) y de restauración de bases de datos o tablas.

  • Se solucionó un problema donde la función ETL de IMCI no admitía la función JSON_TABLE, y se optimizó el mensaje de error de falta de memoria para las consultas IMCI.

  • Se corrigió un problema donde la memoria liberada seguía utilizándose después de que fallara la creación de un índice basado en funciones y su posterior reversión.

  • Se solucionó un problema por el cual un nodo de solo lectura devolvía el error The JSON binary value contains invalid data al consultar la longitud de un objeto JSON bajo ciertas condiciones límite, después de habilitar el parámetro innodb_blob_slave_read_consistent.

  • Se corrigió un problema donde las estadísticas de columnas enteras distintas de BIGINT podían ser inexactas, lo que impedía al optimizador de consultas generar un plan de ejecución óptimo.

  • Se solucionó un problema por el cual las consultas con expresiones de tabla comunes (CTE) recursivas no se podían enviar a In-Memory Column Index (IMCI) para su ejecución.

  • Se corrigió una caída poco frecuente que podía ocurrir al ejecutar consultas en versiones anteriores del clúster con la función de agregación adaptativa habilitada.

  • Se solucionó un problema donde las conexiones Binlog dump existentes podían quedarse bloqueadas y afectar la limpieza de Binlog después de promover un nodo de solo lectura a nodo principal.

  • Se corrigió un problema que impedía activar el mecanismo de escalado horizontal automático cuando fallaba la inserción de un NCI en el lru cache para In-Memory Column Index (IMCI).

  • Se solucionó un problema de inconsistencia de datos que podía presentarse en un nodo de solo lectura al leer campos JSON grandes o campos JSON actualizados parcialmente de forma frecuente en escenarios específicos.

  • Se corrigió un problema en Elastic Parallel Query que podía provocar la caída de un proceso cuando varias subconsultas hacían referencia al mismo campo de una consulta externa, pero usaban políticas de envío distintas.

  • Se solucionó un problema donde algunas consultas fallaban con un OOMError debido a un cálculo inexacto del uso de memoria.

  • Se corrigió una excepción de procesamiento que podía ocurrir al agregar un índice de almacén de columnas a una tabla sin clave primaria pero con una clave única.

  • Se solucionó un problema de falta de memoria (OOM) en nodos de lectura/escritura causado por el mecanismo de escritura por lotes predeterminado al ejecutar un DDL en línea sobre una tabla con índice de almacén de columnas.

8.0.1.1.51.2 (2025-11-05)

Optimizaciones de rendimiento

Descripción

Se optimizó la eficiencia del cambio de archivos de registro binario en escenarios donde se conservan muchos de estos archivos. Esto reduce el tiempo de cambio y evita que se bloqueen las confirmaciones de transacciones.

Correcciones de bugs

Descripción

  • Se corrigió un problema que ocurría al desactivar dinámicamente la función Thread Pool (al establecer el parámetro loose_thread_pool_enabled en OFF), lo cual podía dejar conexiones bloqueadas después de completar la ejecución de un DDL.

  • Se corrigió un problema por el cual columnstore index read-only node consumía demasiada memoria después de ejecutar transacciones grandes.

8.0.1.1.51.1 (2025-10-16)

Nuevas funciones

Descripción

Se añadió un interruptor dinámico para controlar la función de ajuste de posición del cursor en los nodos de solo lectura (RO).

Correcciones de bugs

Descripción

  • Se corrigió un problema donde las consultas volvían inesperadamente a la ejecución en almacén de filas al usar Hybrid Plan acceleration for wide table queries con In-Memory Column Index (IMCI), debido a que una optimización convertía la función AVG en SUM/COUNT.

  • Se solucionó un problema de consumo excesivo de tiempo al crear una tabla particionada en el nodo principal (RW) con la función Parallel Parse habilitada.

8.0.1.1.51 (2025-09-29)

Nuevas funciones

Descripción

  • Se añadió compatibilidad con vistas materializadas completas. Esta función ofrece respuestas de consulta más rápidas en escenarios de informes y análisis sobre datos agregados estáticos o casi estáticos con grandes volúmenes de información, gracias al cálculo previo y almacenamiento de resultados de consultas complejas.

  • Se añadió compatibilidad con la función Orca (compatible with the Redis protocol), compatible con los protocolos de Redis 7.0 y anteriores. Orca es un servicio de base de datos en memoria integrado en PolarDB que permite acceder a la base de datos mediante el protocolo Redis. Resulta adecuada para escenarios que requieren caché de clave-valor de alto rendimiento para acelerar el acceso de las aplicaciones. La base de datos __orca_in_polardb_m_, creada de forma predeterminada para esta función, no consume espacio de almacenamiento cuando no se utiliza.

  • Se añadió compatibilidad con la autenticación AUTH password para Orca (compatible with the Redis protocol) basada en la cuenta default. Cuando se configura la cuenta default, los clientes pueden usar el comando estándar AUTH de Redis para verificar su identidad, lo que mejora la seguridad de acceso al servicio Orca.

  • Se añadió compatibilidad en adaptive execution plan switching feature para escenarios de Index Condition Pushdown (ICP).

  • Se añadió el parámetro rds_max_tmp_disk_space para limitar el espacio total en disco que pueden ocupar las tablas temporales creadas por todas las sesiones dentro de un mismo clúster.

  • Se incorporó una función de recuperación rápida para el módulo de asignación de filas y columnas de In-Memory Column Index (IMCI). Esta función reduce significativamente el tiempo que un índice de columnas permanece en LOADING_NCI state después de reiniciar un nodo de almacén de columnas, lo que permite restaurar el índice de columnas en segundos.

Optimizaciones de rendimiento

Descripción

  • Se optimizó la estrategia de asignación de páginas BLOB. Cuando la información de diccionario serializado (SDI) está habilitada, se desactiva la preasignación de páginas BLOB para evitar el desperdicio innecesario de espacio de almacenamiento provocado por actualizaciones frecuentes de SDI, lo que mejora la eficiencia en el uso del espacio.

  • Se optimizó el mecanismo de carga de metadatos para los nodos IMCI. Esto resolvió el posible problema de falta de memoria (OOM) causado por una lista de metadatos demasiado larga durante los reinicios de nodos en escenarios con grandes volúmenes de datos.

  • Se estandarizó la convención de nombres de los archivos locales relacionados con columnstore index (IMCI) en todos los roles de nodo, lo que simplifica la gestión de archivos durante los cambios por alta disponibilidad (HA).

Correcciones de bugs

Descripción

  • Se corrigió un error que ocurría cuando un nodo de solo lectura (RO) recién creado ejecutaba una instrucción DDL después de un cambio por alta disponibilidad. El error se debía a un fallo al modificar la información de diccionario serializado (SDI). Esto garantiza la estabilidad de las operaciones DDL del clúster tras un cambio por alta disponibilidad.

  • Se solucionó un problema donde los nodos principal y secundario de un Multi-master Cluster (Limitless) Edition podían provocar la caída del clúster durante un cambio por alta disponibilidad (HA).

  • Se corrigió un problema que podía causar acceso a punteros no válidos cuando se libera un índice mientras se ejecuta INSTANT DDL en un IMCI.

  • Se solucionó una posible caída durante un cambio por alta disponibilidad (HA) bajo alta presión de escritura tras un escalado horizontal sin inicialización.

  • Se corrigió un fallo ocasional en las tareas de restauración a un momento dado cuando la función Parallel Parse está habilitada.

  • Se solucionó un problema donde agregar un columnstore index (IMCI) a una tabla sin clave primaria pero con clave única podía generar un error.

  • Se corrigió un problema por el cual un clúster Multi-master Cluster (Limitless) Edition podía fallar al iniciar o la persistencia de datos podía fallar después de un cambio por alta disponibilidad (HA).

  • Se solucionó un problema en Multi-master Cluster (Limitless) Edition donde aparecían vacíos en gtid_executed tras ejecutar una instrucción CREATE ... IF NOT EXISTS en un nodo de agregación.

  • Se corrigió un problema en Multi-master Cluster (Limitless) Edition donde, después de convertir en caliente un nodo local de solo lectura (RO) en un nodo de lectura/escritura (RW), ejecutar operaciones DML sobre una tabla con un In-Memory Column Index (IMCI) podía provocar la caída del nodo RW.

  • Se solucionó un problema por el cual el módulo Delta de IMCI podía acceder a un puntero nulo durante la serialización debido a una lógica incompleta para identificar filas revertidas, lo que podía causar la caída del clúster.

  • Se corrigió un problema donde se perdía información de data cleanup (TTL) durante una operación CREATE PARTITION TABLE porque no se actualizaba la información principal del diccionario de datos (DD).

  • Se solucionó un problema donde una consulta IMCI que contenía tanto las funciones de agregación DISTINCT como AVG podía devolver un resultado incorrecto.

  • Se corrigió un problema por el cual el rendimiento de las consultas de Multi-master Cluster (Limitless) Edition podía degradarse bajo cargas intensas.

  • Se solucionó un problema donde algunas consultas no se podían enviar al índice de almacén de columnas para su ejecución cuando el parámetro imci_implicit_orderby_rollup estaba habilitado.

  • Se corrigió un problema donde IMCI read-only nodes podía experimentar retrasos de replicación en escenarios con operaciones DDL de alta frecuencia.

8.0.1.1.50.2 (2025-08-26)

Correcciones de bugs

Descripción

  • Se corrigió un problema poco frecuente donde un proceso de limpieza en segundo plano podía dañar un índice secundario durante la reversión de una transacción.

  • Se solucionó un problema por el cual un nodo de solo lectura podía fallar temporalmente al consultar algunos registros durante un ajuste de la estructura del índice B-tree provocado por una alta carga de escritura.

8.0.1.1.50.1 (2025-08-12)

Correcciones de bugs

Descripción

  • Se corrigió un problema en la función In-Memory Column Index (IMCI) donde un nodo podía sufrir un crash cuando el deltastore ejecutaba una tarea de swap, debido a que la longitud de una página pax desbordaba uint32 o se encontraba un puntero nulo.

  • Se solucionó un problema donde las operaciones de archivo seguidor de una escritura y múltiples lecturas para IMCI se prohibían inesperadamente debido a un orden de inicialización incorrecto de las variables globales.

8.0.1.1.50 (2025-07-17)

Nuevas funciones

Descripción

  • Se amplió la funcionalidad de las funciones de ventana para admitir la cláusula FRAME. Esto permite definir el rango de cálculo con mayor precisión tanto en los modos ROWS como RANGE, lo que aumenta la flexibilidad de las consultas analíticas complejas.

  • Se añadió una nueva métrica estadística Pruner a nivel de consulta para In-Memory Column Index (IMCI). Al consultar la vista INFORMATION_SCHEMA.IMCI_SQL_PROFILING, puede conocer la eficiencia de poda de bloques de datos del operador TableScan durante la ejecución y así analizar y optimizar con mayor precisión el rendimiento de las consultas.

  • Ahora puede usar Online DDL para modificar los valores de la columna de incremento automático de high-compression engine (X-Engine). Esta actualización le permite realizar el cambio sin bloquear operaciones DML, lo que garantiza la continuidad del negocio.

  • Se mejoró la capacidad de envío de consultas para In-Memory Column Index (IMCI). Ahora admite consultas SQL complejas que contienen ROLLUP y subconsultas con funciones de agregación en las columnas de proyección. De este modo, más tipos de consultas analíticas y de informes aprovechan las mejoras de rendimiento de IMCI.

  • IMCI ahora admite la expresión JSON_ARRAYAGG. Esta función agrega varias filas de los resultados de una consulta en un único arreglo JSON, lo que mejora las capacidades de procesamiento de datos JSON.

Optimizaciones de rendimiento

Descripción

  • Se optimizó el mecanismo de programación del pool de hilos elástico en segundo plano para IMCI. Esto reduce significativamente su uso de CPU al obtener el estado de las tareas, disminuye la sobrecarga del sistema y libera más recursos de cómputo para los servicios principales.

  • Se mejoró la eficiencia de Page Apply durante la replicación física. Al evitar los retrasos de replicación física causados por la lectura de datos fríos en los nodos secundarios, se reduce la posibilidad de variaciones ocasionales y se mejora la estabilidad de la sincronización de datos.

  • Se optimizó la lógica de desconexión de los nodos de almacén de columnas. Al hacer asíncrona la limpieza de archivos residuales y optimizar el control de flujo, el proceso de desconexión del nodo es más fluido, lo que reduce el impacto en los servicios en ejecución.

  • Fusionar funciones de ventana que comparten la misma definición PARTITION BY mejora la eficiencia de ejecución de In-Memory Column Index (IMCI) al procesar consultas analíticas complejas.

  • Se mejoró el rendimiento del operador HashJoin en In-Memory Column Index (IMCI). Optimizar el proceso de creación y la implementación específica de su tabla Hash interna acelera el procesamiento de consultas de unión.

  • En In-Memory Column Index (IMCI), Hybrid Plan ahora admite ejecutar consultas en tablas sin una clave primaria definida explícitamente. Esto amplía la aplicabilidad del almacenamiento híbrido de filas y columnas, y le permite aprovechar sus ventajas de rendimiento incluso si el esquema de la tabla no contiene una clave primaria.

  • Se añadió el parámetro adaptive_digest_length_multiplier. Este parámetro permite ajustar el tamaño de memoria preasignado para el digest SQL al establecer un coeficiente adecuado de longitud de texto SQL, con el fin de optimizar la eficiencia en el uso de la memoria.

  • Se redujo la granularidad de bloqueo en la función de retención de instantáneas de los nodos de índice de almacén de columnas de solo lectura. Esto evita eficazmente las interrupciones ocasionales en la información de monitoreo causadas por esperas prolongadas de bloqueo y mejora la observability del sistema.

Correcciones de bugs

Descripción

  • Se corrigió un problema donde algunas consultas elegibles no se enviaban correctamente a IMCI para su ejecución cuando el parámetro imci_implicit_orderby_rollup estaba habilitado, lo que garantiza la estabilidad de la función de aceleración de consultas.

  • Se solucionó un problema donde la caché de table_name en la vista INFORMATION_SCHEMA para In-Memory Column Index (IMCI) no se actualizaba oportunamente después de ejecutar una operación RENAME sobre una tabla particionada, lo que garantiza la consistencia de los metadatos.

  • Se corrigió un problema donde las tareas de actualización basadas en información antigua del índice de almacén de columnas podían provocar un fallo de aserción después de confirmar un INSTANT DDL. Esto mejora la estabilidad de la función INSTANT DDL.

  • Se solucionó un problema donde los tipos de cadena podían usar incorrectamente la información de intercalación de character_set_client al utilizar el modo PREPARE EXECUTE. Esto garantiza la corrección en el manejo de conjuntos de caracteres.

  • Se corrigió un problema en Sharding Outline donde un defecto en la lógica de cálculo del token impedía admitir correctamente los alias de tabla y las cláusulas ORDER BY/LIMIT BY.

  • Se solucionó un problema donde algunas instrucciones en modo PREPARE STATEMENT no se enrutaban correctamente a IMCI para su ejecución, lo que garantiza que las instrucciones preparadas también aprovechen la aceleración de rendimiento.

  • Se corrigió un problema donde el módulo Delta de In-Memory Column Index (IMCI) accedía a un puntero nulo y provocaba la caída del clúster porque el módulo no verificaba las filas revertidas al serializar datos.

  • Se solucionó un problema donde un Index Join en un Hybrid Plan para In-Memory Column Index (IMCI) causaba ocasionalmente el error Assertion failed: false al consultar tablas particionadas.

  • Se corrigió un problema donde en algunos escenarios se podía devolver un error de invalid json al leer datos JSON en un nodo de solo lectura (RO). Esto garantiza la consistencia del formato de datos entre los nodos de lectura/escritura y los de solo lectura.

  • Se solucionó un problema donde IMCI y el almacén de filas podían devolver resultados de consulta inconsistentes cuando el primer parámetro de la función json_valid es de tipo varchar.

  • Se corrigió un problema donde actualizar un valor NULL a una cadena vacía podía provocar la caída del clúster en una tabla que usa el formato de fila REDUNDANT y contiene second-level DDL.

  • Se solucionó un problema que causaba mediciones de tiempo ocasionalmente inexactas al analizar consultas In-Memory Column Index (IMCI) mediante la función Analyze In-Memory Column Index query performance (imci_analyze_query), lo que mejora la confiabilidad de la herramienta de análisis de rendimiento.

  • Se corrigió un problema donde, después de usar la función Database and Table Restoration para restaurar una tabla particionada que contiene Second-level DDL y tiene 10 o más particiones, podía producirse un error al acceder a la tabla.

  • Se solucionó un problema donde la distribución adaptativa enrutaba incorrectamente a IMCI las consultas con funciones definidas por el usuario no admitidas, lo que generaba errores de ejecución.

  • Se corrigió un problema donde IMCI podía devolver un error de falta de memoria (OOM) al procesar operaciones GROUP BY sobre cadenas de longitud variable con volúmenes de datos extremadamente grandes.

  • Se solucionó una posible caída del clúster durante la ejecución de Batched Nested Loop (BNL) cuando se ejecutaba un CTE junto con SEMI JOIN DuplicateWeedout.

  • Se corrigió una fuga de memoria en el pool de hilos interno de In-Memory Column Index (IMCI) durante el escalado vertical elástico, lo que evita fugas de memoria cuando se ajustan las PCU de un clúster Serverless.

  • Se solucionó un problema de interbloqueo causado por la adición innecesaria de bloqueos de transacción en índices de clave única (UK). Esto mejora la estabilidad del sistema en escenarios de alta concurrencia.

  • Se corrigió un problema donde la ejecución simultánea de DROP INDEX mientras un IMCI ejecutaba LOADING_NCI podía dejar bloqueada la tarea de carga.

  • Se solucionó un problema donde las consultas ocasionalmente no utilizaban Hybrid Plan cuando global consistency (high-performance mode) estaba habilitado, lo que garantiza que se seleccione el plan de consulta correcto en el modo de alto rendimiento.

8.0.1.1.49.2 (2025-06-11)

Correcciones de bugs

Descripción

  • Se corrigió un problema donde las operaciones de restauración a un momento dado podían no ser idempotentes en el modo de análisis sintáctico paralelo.

  • Se solucionó un problema donde In-Memory Column Index (IMCI) podía causar inexactitudes en los datos durante operaciones de DDL en línea en las versiones 8.0.1 y posteriores.

  • Se corrigió un problema donde el Index Join del Hybrid Plan de IMCI podía provocar una caída al ejecutar un patrón Anti Semi Join con un Post Filter.

  • Se solucionó un problema donde la función Window Function podía generar un conjunto de resultados anómalo cuando los datos de la tabla temporal interna se escribían en disco.

  • Se corrigió un problema donde podía producirse una caída durante Data Cleanup (TTL) si un interbloqueo provocaba la reversión de una transacción.

  • Se solucionó un problema donde el hilo Data Cleanup (TTL) podía causar una caída si no lograba liberar un objeto de transacción (trx) durante el apagado.

  • Se corrigió un problema de falta de memoria (OOM) que podía activarse cuando un In-Memory Column Index (IMCI) realiza una compactación por ordenamiento.

8.0.1.1.49.1 (2025-05-21)

Correcciones de bugs

Descripción

Se corrigió una fuga de memoria en el pool de hilos interno de In-Memory Column Index (IMCI) durante el proceso de reducción elástica. Esta corrección evita eficazmente las fugas de memoria en clústeres serverless cuando se ajustan dinámicamente las PCU (PolarDB Capacity Units).

8.0.1.1.49 (2025-04-25)

Nuevas funciones

Descripción

  • The TTL feature ahora admite configurar un tiempo de expiración. Los datos expiran automáticamente después del tiempo especificado.

  • Se añadió la función EXPLAIN DDL, que permite consultar las características de ejecución de instrucciones DDL específicas.

  • Los nodos de solo lectura (RO) de la función Serverless ahora incluyen una capacidad para recuperar la memoria no utilizada del parse buf (bloque de memoria para analizar registros), lo que reduce el uso de memoria.

  • Se añadió compatibilidad con E/S asíncrona de registros redo y E/S por particiones de registros redo (Partition IO) en Multi-master Cluster (Limitless) Edition.

  • Se añadió una configuración para controlar el umbral de costo de adaptive execution en la distribución automática de solicitudes entre nodos de almacén de filas y de columnas.

  • En In-Memory Column Index (IMCI), el Index Join del Hybrid Plan ahora admite los modos Semi Join y Anti Semi Join.

Optimizaciones de rendimiento

Descripción

  • Se mejoró el rendimiento de las consultas IMCI que utilizan listas IN.

  • Se optimizó el mecanismo de implementación de Hash Groupby en IMCI para seleccionar automáticamente políticas y algoritmos de particionamiento según las características de distribución de los datos, lo que mejora el rendimiento de las consultas.

  • Se optimizó la lógica del optimizador de consultas para manejar subconsultas, con el fin de mejorar significativamente el rendimiento de IMCI en subconsultas IN y EXISTS complejas.

  • Se optimizó un problema donde el rendimiento de la base de datos se degradaba al usar el parámetro max_execution_time bajo alta concurrencia.

Correcciones de bugs

Descripción

  • Se corrigió un problema donde ocasionalmente se acumulaban bloques de memoria en ImciFollower dentro de una arquitectura compartida multinodo de In-Memory Column Index (IMCI).

  • Se solucionó un problema donde WITH ROLLUP podía no generar correctamente valores NULL cuando la columna de la cláusula GROUP BY contenía una expresión.

  • Se corrigió un problema poco frecuente donde un nodo de almacén de columnas accedía a datos en caché previos a una operación DDL.

  • Se solucionó un problema de compatibilidad con the Fast import feature cuando se usaba junto con partitioned tables e Instant Columns.

  • Se corrigió un problema donde IMCI no podía usar el parámetro imci_implicit_orderby_rollup para controlar el orden de los resultados de consulta al procesar consultas con ROLLUP.

  • Se solucionó un problema donde acceder a un índice espacial en un nodo de solo lectura podía recuperar datos duplicados.

  • Se corrigió un problema de reducción de escala para In-Memory Column Index (IMCI) en clústeres Serverless con especificaciones grandes de nodo principal.

  • Se solucionó un problema donde In-Memory Column Index (IMCI) no admitía la cláusula LIMIT 1 en subconsultas SQL.

  • Se corrigió un problema donde Mixoutput de materialización mixta de In-Memory Column Index (IMCI) no realizaba la conversión de zona horaria al leer datos de marca de tiempo.

  • Se solucionó un problema poco frecuente de lectura/escritura fuera de límites en ROW LOG al ejecutar ONLINE DDL sobre una tabla con una lista virtual.

  • Se corrigió un posible error en los resultados de consultas paralelas cuando una subconsulta contenía la palabra clave Having.

  • Se solucionó un problema donde la función Redo Cache podía leer datos sucios al leer registros Redo de borde. Este problema hacía fallar la verificación de validez del registro Redo y provocaba la caída del clúster.

  • Se corrigió una posible caída del clúster bajo alta concurrencia cuando se utilizaban las funciones de consulta paralela (PQ) y performance_schema.

  • Se solucionó una posible caída en un nodo secundario de un Multi-master Cluster al cambiar la base de datos o el endpoint del objeto antes que el nodo.

  • Se corrigió un posible problema de corrupción de índices en un índice secundario creado sobre una Virtual Column.

  • Se solucionó un problema de compatibilidad entre la función database and table recovery y la función de extensión de nombres de parámetros de espacio de archivos.

  • Se corrigió un fallo de inicio de un nuevo nodo de lectura/escritura en un Multi-master Cluster cuando existía un nodo global de solo lectura.

  • Se solucionó un problema donde no se podía ejecutar una operación IMPORT TABLESPACE debido a una caída inesperada durante una escritura BLOB optimizada.

  • Se corrigió un problema donde el flujo de trabajo de database and table recovery podía interrumpirse si el nombre de un parámetro de extensión contenía un espacio.

  • Se solucionó una posible interrupción de tareas cuando la tabla de origen para la restauración de bases de datos y tablas tenía un índice de almacén de columnas.

  • Se corrigió un error donde un nodo de solo lectura indicaba que un archivo no existía al ejecutar Show Binlog Events.

  • Se solucionó un problema poco frecuente donde una instrucción no podía finalizar normalmente al terminar la conexión correspondiente de un DDL en un clúster con DDL no bloqueante.

  • Se corrigió un problema de compatibilidad para In-Memory Column Index (IMCI) que ocurría al ejecutar consultas SELECT DISTINCT en escenarios non-full-groupby.

  • Se solucionó una serie de problemas con la elasticidad de memoria de In-Memory Column Index (IMCI) para mejorar la eficiencia en el uso de la memoria y la estabilidad del clúster.

  • Se corrigió una posible caída del clúster cuando una tabla materializada con ordenamiento se fusionaba en una consulta externa en un escenario de consulta paralela.

  • Se solucionó un problema que provocaba que los nodos de solo lectura (RO) de un clúster Serverless se redujeran a 0.25 PCU durante la sincronización de especificaciones con los nodos de lectura/escritura (RW).

  • Se corrigió una caída del clúster al crear una tabla temporal con una instrucción CREATE TABLE AS SELECT.

8.0.1.1.48.1 (2025-03-20)

Correcciones de bugs

Descripción

Se corrigió un problema donde las solicitudes de lectura en un nodo de solo lectura (RO) se ralentizaban en escenarios con baja carga de Redo cuando la función de motor multiversión estaba habilitada.

8.0.1.1.48 (2025-02-21)

Nuevas funciones

Descripción

  • La instrucción Delete ahora admite sugerencias de índice (Index Hints), lo que permite usar índices específicos mediante la sintaxis USE INDEX, FORCE INDEX o IGNORE INDEX.

  • Se añadió compatibilidad para enviar registros RedoLog a los nodos de almacén de columnas a través de la red, lo que reduce el consumo de IOPS de dichos nodos.

  • Se añadieron las funciones de cifrado SM4_encrypt()/SM4_decrypt() para implementar cifrado de acceso a nivel de campo con el algoritmo SM4.

  • Se añadió una función para analizar registros Redo en paralelo durante la replicación física, lo que mejora el rendimiento de dicha replicación.

  • El resultado de Explain ahora muestra el ID de Outline llamado. Si una misma instrucción llama a varios ID de Outline, estos se separan con comas.

  • What Is X-Engine añade compatibilidad con la función de tablas anchas grandes, que admite un máximo de 10 000 columnas por tabla.

  • Se añadió la función Resource Management User Guide, que implementa aislamiento de recursos de CPU a nivel de User y de Database.

  • Multi-master Cluster (Limitless) Edition ahora admite la función de nodo local de solo lectura, que proporciona distribución de carga de lectura y cambio por alta disponibilidad.

Optimizaciones de rendimiento

Descripción

  • Se optimizó el bloqueo mutex global para SHOW VARIABLES, lo que mejora el rendimiento bajo alta concurrencia.

  • Se optimizó High-compression Engine (X-Engine) al habilitar automáticamente la función de preconfirmación en escenarios DDL.

Correcciones de bugs

Descripción

  • Se corrigió un problema que impedía a los nodos de solo lectura (RO) de un clúster Serverless reducirse al límite inferior de 0.25 PCU durante la sincronización de especificaciones con los nodos de lectura/escritura (RW).

  • Se solucionó un problema donde desactivar Hybrid Plan en tiempo de ejecución en In-Memory Column Index (IMCI) podía provocar una caída.

  • Se corrigió un problema poco frecuente de redundancia de datos en índices de almacén de columnas que podía ocurrir si el clúster se reiniciaba durante una transacción grande en un nodo de almacén de columnas y se ejecutaba una recuperación tras fallos.

  • Se solucionó una posible excepción que podía activarse cuando todos los datos de un bloque de datos almacenado eran idénticos.

  • Se habilitó el permiso binlog_rows_query_log_events a nivel de sesión para admitir copias de seguridad y reversiones SQL mediante DMS.

  • Se corrigió un problema donde el proceso de DDL en línea para índices de almacén de columnas en un escenario de Multi-master Cluster no se adaptaba a la lógica del número de secuencia de registro lógico (LLSN), lo que provocaba que no se reprodujeran algunos registros Redo del almacén de columnas.

  • Se solucionó un problema donde los espacios de tablas antiguos generaban fugas durante la recuperación tras un cambio DDL en What Is X-Engine.

  • Se corrigió un error de selección de índice en IMCI para escenarios de filtrado por rango constante (const between field1 and field2).

  • Se solucionó una caída en IMCI que ocurría durante una consulta sobre un partitioned table cuando se ejecutaba una instrucción Explain for Connection para esa consulta en otra sesión.

  • Se eliminó una restricción innecesaria en la selección de algoritmos. Ahora, algunas subconsultas correlacionadas pueden elegir el algoritmo eficiente HASH JOIN para su ejecución.

  • Se corrigió un problema donde los resultados de consultas I_S de IMCI (vistas relacionadas con IMCI en la base de datos Information_Schema) con un filtro de name estaban incompletos debido al uso de una función de comparación de cadenas que no distinguía mayúsculas de minúsculas.

  • Se solucionó un problema donde no se podía obtener un bloqueo MDL durante la fase DDL SCAN, lo que solo mostraba un mensaje de error sin permitir recuperar los datos del índice de almacén de columnas.

  • Se corrigió un problema donde la variable gtid_purged de un nodo de solo lectura no se sincronizaba con el nodo principal.

  • Se solucionó un problema donde eliminar una base de datos en un Multi-master Cluster podía dejar bloqueado todo el clúster.

  • Se corrigió un problema donde las variables de global consistency (high-performance mode) se cambiaron al nivel de conexión, lo que añade compatibilidad para habilitar o deshabilitar la función mediante un endpoint de proxy.

  • Se solucionó un problema donde ejecutar los comandos de tabla TRUNCATE y RENAME en un Multi-master Cluster podía dejar bloqueado todo el clúster.

  • Se corrigió un problema donde el motor XEngine borraba inesperadamente los metadatos de los bloques de datos al reiniciar un nodo de solo lectura.

  • Se solucionó una posible anomalía en el sistema de bloqueos MDL cuando la cantidad de conexiones supera 65536.

  • Se corrigió una situación donde un Multi-master Cluster podía dejar inutilizable un nodo de lectura/escritura cuando la cantidad de tablas en la base de datos era muy grande.

  • Se solucionó un problema donde establecer una variable de tipo flagset, como (optimizer_switch), ya no reporta un error si existen elementos duplicados.

  • Se corrigió un problema donde las versiones comunitarias anteriores no optimizaban correctamente el orden de unión en instrucciones de actualización de múltiples tablas.

  • Se solucionó un problema en IMCI donde el estado se establecía incorrectamente cuando varios filtros de tiempo de ejecución se enviaban a la misma tabla.

  • Se corrigió una posible caída al procesar la salida de cadena vacía de GROUP_CONCAT con la expresión SUBSTRING_INDEX cuando la longitud del separador es mayor que 1.

8.0.1.1.47.1 (2025-01-07)

Correcciones de bugs

Descripción

Se corrigió un problema donde la lectura de objetos grandes JSON o GIS mediante In-Memory Column Index (IMCI) podía fallar ocasionalmente.

2024

8.0.1.1.47 (2024-12-19)

Nuevas funciones

Descripción

  • Se añade compatibilidad con escenarios de fragmentación de tablas en Outline. Un solo Outline puede coincidir con todas las sentencias que tengan la misma plantilla y aplicarse a distintas tablas fragmentadas.

  • Ahora es posible ajustar dinámicamente el resultado de selección de Order Index según las condiciones reales durante la ejecución.

  • Se incorpora el análisis sintáctico paralelo de Redo para la replicación física, lo que mejora su rendimiento.

  • Se agrega la variable ignore_use_force_index. Al habilitarla, se ignoran todos los use o force index en las sentencias y los Outlines (sin afectar Index() en los Hints).

  • Se incluyen las funciones de conversión de cadenas convert_sys_to_filename() y convert_filename_to_sys() para convertir entre la codificación system_charset_info y la codificación my_charset_filename.

  • Se añadió compatibilidad con setting transparent data encryption (TDE) para datos fríos en OSS.

  • Se añadió compatibilidad con el almacenamiento en búfer MTT asimétrico para instancias RW y RO. Esto permite habilitar MTT optimization de manera coordinada en ambas.

  • La tabla IMCI i_s.imci_index_stats incluye ahora el campo PRUNED_PERCENT, que indica la proporción de Data Skipping de cada índice columnstore.

  • El resultado de SHOW ProcessList muestra ahora si una sesión está en espera de la programación del thread pool.

  • Es posible reconstruir directamente un índice columnstore al modificar el valor pack_shift en COMMENT, sin necesidad de eliminarlo antes.

Optimizaciones de rendimiento

Descripción

  • Se optimizó el proceso de reducción dinámica del Buffer Pool para disminuir los conflictos de bloqueos.

  • Se mejoró SQL Trace para registrar correctamente el SQL y los planes de ejecución cuando se utiliza Call procedure.

  • Se redujo la sobrecarga de memoria de las tablas anchas columnstore.

  • Se aceleró el inicio de los nodos columnstore de solo lectura. Ahora el motor columnstore puede iniciarse de forma independiente desde el desplazamiento de la instantánea columnstore.

  • Se optimizó el código de inicio y destrucción de hilos para la prelectura lógica, lo que simplifica la lógica de comprobación de memoria.

  • Se redujo el tiempo prolongado de inicio de column store nodes en escenarios con una gran cantidad de tablas.

  • Se mejoró el rendimiento y el uso de memoria de las transacciones grandes en IMCI.

  • Se optimizó el rendimiento de la materialización de expresiones HASH KEY en IMCI.

  • Se optimizó el flujo de Serverless para los nodos columnstore. Los nuevos nodos columnstore se agregan al nodo Proxy para atender el tráfico del servicio únicamente cuando sus índices están listos.

  • Se mejoró el mecanismo de muestreo de estadísticas de IMCI, con mayor frecuencia de muestreo y una proporción más alta de datos muestreados.

    Se optimizó la lógica de muestreo para columnas de baja cardinalidad. Así se evita que las estadísticas inexactas impidan optimizar por completo las consultas.

  • Se optimizó el módulo de bloqueo de rendimiento asíncrono Simulated-AIO.

Correcciones de bugs

Descripción

  • Se corrigió un problema donde una DDL podía generar un error o no surtir efecto en una tabla con una vista después de una HA (conmutación de nodo).

  • Se solucionó un fallo continuo en la prestación de servicio de un nodo RO tras volver a conectarse con el nodo RW.

  • Se corrigió un cierre inesperado del proceso provocado por la sentencia CAST(REGEXP_SUBSTR(...)) AS DECIMAL.

  • Se solucionó un problema donde REGEXP_SUBSTR podía devolver una marca NULL incorrecta.

  • Se corrigió un problema donde la sentencia de creación de la tabla del sistema dlm_policies se registraba en el BINLOG, lo que provocaba fallos en la sincronización descendente.

  • Se solucionó un caso en el que los índices únicos no se aprovechaban por completo para acelerar ciertas consultas.

  • Se corrigió la retención de metadatos al eliminar varios índices de texto completo (FTS) de forma simultánea con la sentencia ALTER TABLE DROP.

  • Se evitó la reconstrucción innecesaria de índices al ampliar la longitud de una columna VARCHAR con un valor DEFAULT especificado.

  • Se resolvieron problemas de IMCI Serverless, como incompatibilidades con la elasticidad de memoria interna y anomalías de escalado.

  • Se corrigió un bloqueo en las búsquedas de índices de texto completo de los nodos de solo lectura después de una operación DDL.

  • Se solucionó un problema en Adaptive Execution que impedía enrutar correctamente ciertos tipos de consultas.

  • Se corrigió un problema de disponibilidad causado por la falta de compatibilidad con la reconstrucción en línea de un In-Memory Column Index (IMCI).

  • Se solucionó un fallo en clústeres multi-escritura al ejecutar add columnstore indexes in batches, originado por un manejo inadecuado del bloqueo global DDL.

  • Se corrigió un cierre inesperado de consulta en escenarios JSON_TABLE con campos NULL.

  • Se resolvió un conflicto entre Multi-master Buffer Pool Resize y el acceso transaccional a bloques. También se optimizó el rendimiento del registro o anulación de registro RDMA del Buffer Pool Multi-master.

  • Se añadió compatibilidad de Digest CCL con el protocolo PS (Prepared Statements).

  • Se previno un posible cierre inesperado en nodos RO durante la fase de HA (conmutación de nodo) tras habilitar la función RO No Sync.

  • Se corrigió un problema con Spatial Index donde las reversiones de transacciones requerían un bloqueo pesimista para eliminar un índice. Esto generaba un bucle infinito y mantenía el bloqueo por demasiado tiempo.

  • Se solucionó una interrupción poco frecuente de tareas durante la actualización de una versión anterior a la 8.0.1.1.45.1.

  • Se corrigió un error poco común al acceder a tipos de datos de cadena durante la ejecución columnstore, que reportaba un fallo de consulta por leer datos no válidos.

  • Se evitó que IMCI volviera al almacenamiento por filas al procesar una expresión con varias subconsultas que contenían SUM.

  • Se corrigió un problema de espera circular durante la reconstrucción asíncrona de índices de columna en escenarios IMCI de una escritura y múltiples lecturas con la función Use Hybrid Plan to accelerate wide table queries habilitada.

  • Se solucionó un problema donde modificar el parámetro innodb_bulk_load_page_grained_redo_enable en cierta ventana de tiempo durante una DDL paralela causaba escrituras Redo incorrectas en algunas páginas.

  • Se previno un posible interbloqueo en BLINK durante la eliminación masiva de datos en tablas con campos LOB.

  • Se corrigió un fallo en el proceso migrate provocado por operaciones INSTANT DDL concurrentes de alta frecuencia junto con tareas Compaction en segundo plano.

  • Se solucionó un problema donde GROUP BY podía hacer que una tabla temporal reportara el error table is full.

  • Se corrigió un problema de resultados inestables en IMCI cuando un index join utilizaba una constante como condición de unión.

8.0.1.1.46.2 (2024-11-19)

Correcciones de bugs

Descripción

  • Se corrigió un problema donde el valor Autoinc de la tabla retrocedía tras cambiar un nodo RO a RW y ejecutar la sentencia INSERT ... ON DUPLICATE KEY UPDATE.

  • Se resolvieron problemas de compatibilidad con la elasticidad de memoria interna y excepciones de escalado en IMCI Serverless.

  • Se corrigió un bug que provocaba un cierre inesperado cuando la transformación de una consulta superaba las 61 tablas. En estos casos ya no se aplica la reescritura de la consulta.

8.0.1.1.46.1 (2024-11-06)

Correcciones de bugs

Descripción

  • Se corrigió un bloqueo en las búsquedas de índices de texto completo de los nodos de solo lectura después de una DDL.

  • Se solucionó una incompatibilidad entre la capacidad backward index scan y optimizaciones como ICP. Se añadió un nuevo polar_optimizer_switch para controlarlo.

8.0.1.1.46 (2024-10-28)

Nuevas funciones

Descripción

Se agrega la variable ignore_use_force_index. Al habilitarla, se ignoran todos los use/force index en las sentencias y los Outlines (sin afectar index() en los hints).

Optimizaciones de rendimiento

Descripción

  • En IMCI, la tabla INFORMATION_SCHEMA.IMCI_INDEX_STATS ahora incluye el campo PRUNED_PERCENT, que indica la proporción de data skipping de cada índice de columna.

  • Se optimizó SQL trace para que, al establecer el tipo en SLOW LOG, también se aplique a las sentencias especificadas por DEMAND.

  • Se mejoraron los nodos RW y RO para admitir búferes MTT asimétricos. Además, se habilita MTT de forma vinculada entre RO y RW.

  • Se optimizó el proceso Serverless para los nodos columnstore.

    Los nuevos nodos columnstore atienden tráfico únicamente cuando sus índices están listos. Esto reduce las consultas lentas causadas por el enrutamiento de sentencias SQL a nodos nuevos que se ejecutan con planes de almacenamiento por filas durante ese periodo.

  • Se redujo la sobrecarga de rendimiento al guardar información de particiones para IMCI durante la ejecución de SQL, lo que mejora el rendimiento de las consultas de partitioned tables.

Correcciones de bugs

Descripción

  • Se corrigió un fallo del clúster durante la inicialización de Undo cuando Force recovery está habilitado.

  • Se solucionó un interbloqueo en escenarios IMCI de una escritura y múltiples lecturas con Hybrid Plan habilitado, causado por la reconstrucción asíncrona de índices de columna.

  • Se corrigió un error al volver a importar los mismos datos a una tabla particionada con el atributo UNIQUE CHECK IGNORE mediante LOAD DATA con REPLACE.

  • Se evitó la introducción de datos corruptos en recent_written cuando el valor de cálculo CRC de los datos entrantes era exactamente 0 en un despliegue de tres zonas.

  • Se corrigió un bloqueo de los nodos RO durante la fase de HA (conmutación de nodo), lo que evitaba tiempos de HA excesivamente largos para el usuario.

  • Se solucionó un daño en el árbol B provocado por agregar una columna autoincrementable y crear un índice de clave primaria descendente sobre ella.

  • Se evitó que IMCI volviera al almacenamiento por filas al procesar una expresión con varias subconsultas que contenían SUM.

  • Se corrigió un problema poco común de residuos de memoria al encontrar un error durante la reconstrucción paralela de claves primarias.

  • Se previno un posible cierre inesperado al procesar campos LOB en una consulta GROUP BY con el motor Temptable.

  • Se corrigió un posible error en los resultados de consultas paralelas cuando la condición del predicado contenía una subconsulta.

  • Se solucionó un posible cierre inesperado de consulta en escenarios JSON_TABLE con campos NULL.

  • Se corrigió una anomalía de codificación NCI durante operaciones DDL de tipo EQUAL_PACK_LENGTH al modificar un campo PRIMARY KEY.

  • Se solucionó un conflicto entre la división avanzada de transacciones del Proxy y Fast query cache que afectaba el conjunto de resultados.

  • Se corrigió un problema de resultados incorrectos al usar una expresión JSON_ARRAY en una subconsulta con IMCI habilitado.

  • Se solucionó una interrupción en el proceso de new flow para la recuperación de bases de datos y tablas cuando la misma tabla se recuperaba varias veces.

  • Se corrigió una fuga de memoria que ocurría al habilitar dinámicamente la función RDMA log transfer.

  • Se añadió compatibilidad con la reconstrucción en línea de In-Memory Column Index (IMCI), lo que evitaba que IMCI dejara de estar disponible.

  • Se permitió el uso de DDL asíncrona al agregar un In-Memory Column Index (IMCI) mediante la modificación del COMMENT de una tabla con índice de texto completo.

  • Se corrigió un problema donde las transacciones podían no ser killed en escenarios de alta concurrencia.

8.0.1.1.45.2 (2024-09-13)

Correcciones de bugs

Descripción

  • Se solucionó una interrupción poco frecuente de tareas durante la actualización de una versión anterior a la 8.0.1.1.45.1.

  • Se corrigió un error poco común al acceder a datos de tipo cadena durante la ejecución de consultas columnstore, que reportaba un fallo por leer datos no válidos.

8.0.1.1.45.1 (2024-09-09)

Optimizaciones de rendimiento

Descripción

Se redujo la sobrecarga de memoria de las tablas anchas columnstore de IMCI.

8.0.1.1.45 (2024-09-03)

Nuevas funciones

Descripción

  • Se añadió una visualización que indica si una sesión está en espera de la programación del thread pool.

  • Se incorporó una estrategia de reordenamiento de uniones basada en algoritmos voraces en IMCI.

  • Se agregaron procedimientos almacenados y comandos SQL extendidos para añadir columnstore indexes a una base de datos completa por lotes.

  • Se añadió compatibilidad con major engine version upgrades a partir de conjuntos de copia de seguridad de PolarDB 5.7 para mejorar la eficiencia de la migración con un clic.

  • El Hybrid Plan para columnstore index ahora admite tablas particionadas, columnas virtuales y columnas de los tipos ENUM, SET y GIS.

Optimizaciones de rendimiento

Descripción

  • Se mejoró la función para permitir el ajuste dinámico de PolarDB IO Threads sin reiniciar.

  • Se optimizó la elasticidad automática de la reproducción en un solo nodo de IMCI. Esto reduce la latencia de reproducción y los problemas de falta de memoria (OOM) causados por una alta presión de reproducción.

  • Se mejoró el rendimiento de lectura de los campos de tipo Date en IMCI.

  • Se optimizó el mecanismo de muestreo de estadísticas de IMCI, con mayor frecuencia de muestreo y una proporción más alta de datos muestreados.

    Se mejoró la lógica de muestreo para columnas de baja cardinalidad. Así se evita que las estadísticas inexactas impidan optimizar por completo las consultas.

Correcciones de bugs

Descripción

  • Se corrigió un cierre inesperado de nodo relacionado con los índices de texto completo de InnoDB en un Multi-master Cluster.

  • Se solucionó una desviación significativa en la estimación de selectividad del optimizador cuando una condición JOIN en IMCI incluía una conversión de tipos.

    Se corrigió un problema donde el Hybrid Plan no se seleccionaba correctamente en IMCI debido a una sobreestimación de la cardinalidad de salida de un JOIN.

  • Se solucionó un problema donde JSON_LENGTH devolvía resultados incorrectos si había un carácter comodín.

  • Se corrigió un problema donde modificar el parámetro innodb_bulk_load_page_grained_redo_enable en cierta ventana de tiempo durante una DDL paralela causaba escrituras Redo incorrectas en algunas páginas.

  • Se solucionó un problema donde el valor Autoinc de una tabla particionada retrocedía tras cambiar un nodo de solo lectura a uno de lectura/escritura.

  • Se corrigió un bloqueo temporal de las conexiones de monitoreo al eliminar un nodo RO cuando innodb_polar_log_rdma_transfer estaba habilitado.

  • Se solucionó un problema donde el index join de IMCI podía generar resultados inestables al usar una constante como condición JOIN.

  • Se corrigió un problema donde una tabla temporal que usaba la sentencia group by hacía que temptable reportara el error table is full, incluso si el disco no estaba lleno.

  • Se solucionó una espera excesiva de los hilos de usuario de un nodo RO por una Free Page cuando el Buffer Pool estaba casi lleno.

  • Se previno un posible interbloqueo en blink durante la eliminación masiva de datos en tablas con campos lob.

  • Se corrigió un problema donde la optimización de eliminación de JOIN en IMCI podía generar resultados inestables.

  • Se solucionó un problema donde el valor Autoinc reiniciaba desde 1 en la siguiente operación de escritura tras eliminar todos los datos de una tabla.

  • Se corrigió un fallo al ejecutar drop database cuando la database contenía decenas de miles de tablas.

  • Se solucionó un problema donde las subconsultas inútiles no se eliminaban durante la fusión de vistas.

  • Se corrigió un error de memoria insuficiente en IMCI para consultas con demasiadas cláusulas UNION ALL.

  • Se solucionó un problema donde la sentencia desc select no invocaba correctamente un outline.

  • Se corrigió un problema donde table_comments en information_schema.tables mostraba xxx is not base table.

  • Se solucionó una incompatibilidad entre la conversión implícita de tipos de fecha en IMCI y el comportamiento de MySQL, que generaba resultados inesperados.

  • Se corrigió una inconsistencia en los resultados de consulta de IMCI. Ocurría al agregar una nueva partición a una tabla particionada creada en una versión anterior, lo que provocaba que el tipo pruner predeterminado fuera inconsistente.

  • Se solucionó un problema de precisión de punto flotante en JSON.

8.0.1.1.44 (2024-07-06)

Nuevas funciones

Descripción

  • Se añadió compatibilidad para derivar las vistas correspondientes a partir de condiciones join.

  • Se incorporó una versión de materialización tardía de UnionAll para IMCI.

Optimizaciones de rendimiento

Descripción

  • Se redujo el tiempo de optimización de consultas sencillas (consultas de una sola tabla).

  • Los clústeres multi-maestro admiten bloqueos detallados a nivel de tabla.

  • Se mejoró el rendimiento de sum/avg decimal en IMCI.

  • Se optimizó el rendimiento en escenarios de actualización de puntos críticos.

  • Se mejoró el rendimiento de hash match en IMCI.

  • Se optimizó la memoria destinada a los metadatos utilizados en las consultas de IMCI.

  • IMCI admite enviar filtros hacia abajo a las uniones externas.

  • Se ajustó la prioridad del hilo de procesamiento de transacciones de PolarFS para mejorar el rendimiento DDL de PolarDB.

Correcciones de bugs

Descripción

  • Se corrigió un fallo de import table causado por una página pendiente de blink.

  • Se solucionó un bloqueo de la base de datos durante la activación de un checkpoint activo en diversos procesos.

  • Se corrigió un problema donde el cambio dinámico frecuente de RO No Sync podía provocar la pérdida de marcadores.

  • Se solucionó un problema que impedía iniciar un nodo Standby global en un Multi-master Cluster debido a un segmento de reversión anómalo.

  • Se corrigió un problema que impedía archivar una tabla InnoDB con un function index.

  • Se solucionó un problema donde Last_query_cost podía volverse negativo en algunos escenarios de optimización.

  • Se corrigió un problema que impedía realizar la eliminación de uniones cuando una función contenía una función de agregación.

  • Se solucionó un retraso en la actualización de la dirección IP del registro de auditoría al reutilizar una conexión bajo un pool de conexiones a nivel de sesión.

  • Se corrigieron problemas relacionados con el bloqueo y desbloqueo de bloqueos globales de tabla en un Multi-master Cluster.

8.0.1.1.43 (2024-06-03)

Nuevas funciones

Descripción

  • Se añadió compatibilidad de Binlog con la carga reanudable de transacciones.

  • Se agregó el parámetro thread_pool_reset_waiting_state_before_queuing.

Optimizaciones de rendimiento

Descripción

  • IMCI incorpora Index Join basado en Hybrid Plan, que permite usar índices de InnoDB para operaciones Join.

  • Se mejoró el rendimiento de lectura de Page de los nodos de solo lectura en PFS.

  • Se optimizó la memoria destinada a los metadatos utilizados en las consultas de IMCI.

Correcciones de bugs

Descripción

  • Se corrigió un problema donde establecer valores de optimizer_switch y parallel_query_switch generaba un Error en lugar de un Warning ante ciertos valores incorrectos.

  • Se solucionó un problema donde el valor de optimizer_switch no surtía efecto si se añadía una coma al final.

  • Se corrigió un cambio en la selección de índices tras agregar una operación limit a una consulta de agregación implícita.

  • Se solucionó un crecimiento continuo del undo log después de reconstruir un seguidor en un entorno 3AZ.

  • Se corrigió un problema donde Persist RO podía hacer que el nodo RO leyera datos antiguos.

  • Se solucionó un alto retraso de replicación en los nodos de solo lectura de un Multi-master Cluster.

  • Se corrigió un problema donde el optimizador no podía seleccionar el Join Order óptimo debido a un error en la estimación de cardinalidad.

  • Se solucionó un interbloqueo entre hilos que podía ocurrir durante un ajuste de estructura Btree provocado por la eliminación de registros.

  • Se corrigió un fallo al archivar una tabla archivada que tenía un índice descendente.

  • Se solucionó un problema donde no se devolvían datos al usar Limit Offset pushdown con una condición de igualdad de índice secundario compuesto más una condición In List de clave primaria para obtener una salida paginada en orden inverso de la clave primaria.

  • Se corrigió un exceso de permisos durante la ejecución de políticas DLM.

  • Se solucionó un problema donde ejecutar la sentencia Create Table Select en un Multi-master Cluster afectaba la disponibilidad de otros nodos.

  • Se corrigió un posible daño en las páginas del sistema al ejecutar sentencias DDL de forma simultánea en varios nodos de un Multi-master Cluster.

8.0.1.1.42 (2024-04-30)

Nuevas funciones

Descripción

  • Se añadió la función de envío de predicados hacia abajo, que incluye pasar predicados de HAVING a WHERE, y de HAVING a tablas derivadas y subconsultas.

  • Se incorporó un optimizador híbrido de filas y columnas, junto con una capacidad de enrutamiento de filas y columnas basada en costos.

  • Ahora es posible consultar la invocación de Statement Outlines en el resultado de EXPLAIN.

  • Se añadió compatibilidad con el uso de un filtro bloom hash murmur de prefijo en IMCI.

  • Ahora se admite la función de eliminación de LEFT JOIN en sentencias UPDATE.

  • Se habilitó el uso de la función de adición instantánea de columnas en tablas que ya tienen un índice columnstore creado.

  • Fast Query Cache ahora incluye información sobre la cantidad de filas devueltas. Las consultas que aciertan en la caché pueden mostrar este dato en el registro de auditoría.

Optimizaciones de rendimiento

Descripción

  • Se introdujo un mecanismo de retroalimentación de ejecución en el enrutamiento de filas y columnas para recopilar información real de ejecución y enviarla al optimizador.

  • Se deshabilitó de forma predeterminada la intersección de combinación de índices para sentencias DML, con el fin de mejorar el rendimiento y evitar interbloqueos.

  • Se redujo la sobrecarga de metadatos en la asignación de memoria y las estadísticas de memoria de IMCI para ahorrar recursos.

  • IMCI admite el uso de BatchProbe para mejorar el rendimiento de las operaciones JOIN.

  • Se optimizó la memoria de los metadatos, los módulos de archivos y los objetos pequeños residentes en RAM dentro de IMCI para reducir el uso de memoria residente.

  • Se mejoró el mensaje de error al importar datos fríos de OSS de vuelta a InnoDB.

  • Al monitorear el rendimiento de la base de datos, se ignora el impacto de los accesos de los ingenieros de operaciones y mantenimiento sobre la métrica de estado slow_queries.

Correcciones de bugs

Descripción

  • Se corrigió un problema donde la asignación de rutas de OSS de las tablas en la papelera de reciclaje era incorrecta tras reiniciar el clúster con la función RECYCLE BIN habilitada para reciclar tablas IBD de OSS.

  • Se solucionó un problema donde un nodo de solo lectura (RO) con una deriva de reloj excesiva podía arrebatar los permisos de un nodo de lectura/escritura (RW) al iniciar el disco de votación vectorial NewHA.

  • Se corrigió un problema que impedía al procedimiento almacenado integrado dbms_oss.delete_table_file eliminar datos fríos en formato CSV.

  • Se solucionó un problema donde el contador interno del Thread Pool podía volverse incorrecto si se encontraba una espera de bloqueo ACL durante la autenticación asíncrona del Thread Pool.

  • Se corrigió un problema que impedía recuperar el espacio Blob del registro original al ejecutar una operación UPDATE en una columna de tipo Blob.

  • Se solucionó una pérdida de datos al archivar repetidamente una tabla externa de OSS.

  • Se corrigió un problema donde la operación de ordenamiento no se omitía durante la ejecución real, a pesar de que el optimizador había seleccionado un índice de ordenamiento.

  • Se solucionó un cierre inesperado de nodo al crear una tabla externa de OSS porque el parámetro oss_prefix no estaba configurado en el OSS Server.

  • Se corrigió un problema donde se podían recuperar datos anómalos al acceder a ciertas tablas de la base de datos information_schema bajo un Multi-master Cluster.

  • Se solucionó un problema que devolvía un mensaje assert al multiplicar datos de tipo Decimal, siempre que como mínimo un multiplicador fuera 0 y la escala del resultado superara 16.

  • Se corrigió un problema de estadísticas inexactas al actualizar las estadísticas de una tabla particionada con índice columnstore, ya que solo se muestreaban algunas particiones.

  • Se solucionó un problema donde el acceso por igualdad de índice no activaba el enrutamiento adaptativo de filas y columnas.

  • Se corrigió una impresión excesiva de registros de inicialización de Autoinc.

  • Se solucionó un posible error en tablas externas de OSS en escenarios Order By Desc.

  • Se corrigió un cierre inesperado poco común de nodo al ejecutar el comando TRUNCATE PARTITION en una tabla particionada con una columna autoincrementable.

  • Se solucionó un daño en los datos causado por diferencias en el orden de los índices al ejecutar una operación EXCHANGE PARTITION.

  • Se corrigió un posible cierre inesperado de nodo provocado por la cancelación automática de una operación previa de reducción en el Buffer Pool bajo alta concurrencia.

8.0.1.1.41 (2024-03-19)

Nuevas funciones

Descripción

Se añadió una función Left Join basada en el envío TopK hacia abajo en el índice columnstore.

Optimizaciones de rendimiento

Descripción

  • Ahora se admite otorgar a los usuarios permisos dinámicos globales para ejecutar los comandos SHOW_ROUTINE, FLUSH_USER_RESOURCES, FLUSH_TABLES, FLUSH_STATUS y FLUSH_OPTIMIZER_COSTS.

  • Se optimizó el proceso para habilitar el modo de consistencia global de alto rendimiento. Cuando el parámetro innodb_polar_scc se establece en ON en un nodo RO, el clúster habilita automáticamente las funciones dependientes de este modo, como RDMA y PolarTrans, lo que reduce la complejidad del proceso de control.

  • Se añadió compatibilidad con la sintaxis Variable-Setting Hint en la función de modo de consistencia global de alto rendimiento.

  • Ahora es posible establecer el parámetro polar_oss_ddl_shared en ON para acceder a los datos de tablas que se están archivando como datos fríos.

  • Se deshabilitó la función de actualización parcial para campos Blob.

  • Se añadió compatibilidad con la función de restauración de bases de datos y tablas para tablas con índice columnstore.

  • El índice columnstore ahora admite la recopilación de estadísticas de valores más comunes para mejorar la precisión de la estimación de registros por clave en escenarios de sesgo de datos.

  • Se optimizó la función de programación de memoria del índice columnstore para mejorar el uso de la memoria.

  • Se mejoró la función DDL sin bloqueo para admitir más sentencias DDL.

  • Ahora es posible utilizar de forma simultánea el índice columnstore y la consistencia global (modo de alto rendimiento).

  • Se añadió compatibilidad con el comando CHECK TABLE para comprobar una partición específica.

Correcciones de bugs

Descripción

  • Se corrigió un problema donde la sentencia TRUNCATE podía ejecutarse en cualquier nodo de un Multi-master Cluster.

  • Se solucionó un cierre inesperado de nodo causado por acceder a una referencia Blob no válida durante la prelectura de datos de tipo Blob.

  • Se corrigió un posible fallo al exportar una tabla local al motor OSS en paralelo.

  • Se solucionó un problema donde el desplazamiento LSN de un checkpoint no cumplía con lo esperado durante una operación de checkpoint. Esto provocaba que la lógica de recuperación tras fallos fallara después de un reinicio anómalo del clúster.

  • Se corrigió un problema que obligaba a reiniciar el nodo para recuperarse de una reversión de Autoinc.

  • Se previno un posible cierre inesperado de nodo cuando una tabla temporal basada en el motor TempTable se referenciaba varias veces en una CTE (Common Table Expression) y se utilizaba un escaneo de índice sobre dicha tabla.

  • Se corrigió un problema de memoria fuera de límites cuando el índice columnstore procesaba tipos de cadena muy largos.

  • Se solucionó un cierre inesperado poco común de nodo al usar la función de índice columnstore junto con la función de prelectura habilitada.

  • Se corrigió un problema donde la tarea compaction en segundo plano de X-Engine afectaba las operaciones en primer plano y el rendimiento de las consultas lentas debido a un control de concurrencia demasiado estricto.

  • Se solucionó un problema de estimación de cardinalidad inexacta cuando una columna de tipo BIGINT se usaba en una operación Join con un valor muy grande, lo que impedía utilizar el índice columnstore.

  • Se corrigió un interbloqueo en la prelectura DDL en escenarios de DDL paralela.

  • Se solucionó una fuga de memoria que ocurría durante una operación Reload en funciones como Statement Outline y Concurrency Control.

  • Se corrigió un problema donde los campos BIT se mostraban incorrectamente después de una operación Group By.

  • Se solucionó una incompatibilidad entre TDE y la memoria RDMA al bifurcar un proceso hijo.

  • Se corrigió un problema de grupos duplicados en el conjunto de resultados cuando la consulta paralela enviaba GROUP BY a un Worker para su ejecución paralela con una tabla particionada.

  • Se solucionó un daño en los índices y la imposibilidad de acceder a los datos de la tabla debido a diferencias en el orden de los índices al ejecutar una operación EXCHANGE PARTITION.

  • Se corrigieron problemas con tablas particionadas cuya clave primaria no incluye la clave de particionamiento al usar el optimizador de consultas para búsquedas, ejecutar operaciones DML y registrar el Binlog.

8.0.1.1.40.2 (2024-02-07)

Correcciones de bugs

Descripción

  • Se corrigió un problema donde el retraso de replicación de un nodo global de solo lectura podía aumentar mucho cuando la carga de los nodos principales de un Multi-master Cluster estaba desequilibrada.

  • Se solucionó un problema que podía impedir el inicio de un nodo de solo lectura recién creado en un Multi-master Cluster.

  • Se corrigió un problema donde un nodo principal podía fallar al reiniciarse tras ejecutar una DDL en un Multi-master Cluster.

8.0.1.1.40 (2024-01-19)

Nuevas funciones

Descripción

  • X-Engine ahora admite estadísticas de muestreo para estimar la proporción de compresión aproximada.

  • Se añadió compatibilidad para habilitar la función de índice columnstore en el nodo global de solo lectura de un Multi-master Cluster (Database/Table).

  • Ahora los usuarios pueden ignorar el nivel de aislamiento de transacciones establecido implícitamente por herramientas como Metabase al usar la función de índice columnstore.

  • Stats Manager admite enviar automáticamente la tarea de recopilación de histogramas a un nodo de solo lectura o a una réplica activa para lograr actualizaciones automáticas de histogramas.

  • Se añadió compatibilidad con el uso de tablas temporales al emplear el Hybrid Plan para acelerar consultas en tablas anchas.

  • Se incorporó una función para habilitar la degradación adaptativa y la recuperación automática en semi-sync.

  • Ahora es posible modificar el juego de caracteres de un campo mediante el algoritmo INPLACE.

  • SQL Trace admite abrir opciones de configuración para un número limitado de nodos de solo lectura. Es decir, permite configurar el parámetro sql_trace_type en REPLICA_DEMAND, REPLICA_ALL o REPLICA_SLOW_QUERY.

Optimizaciones de rendimiento

Descripción

  • Se aumentó la velocidad del Thread Pool para procesar solicitudes de conexión en escenarios de baja concurrencia.

  • Se mejoró el rendimiento de la base de datos en escenarios de conexiones de corta duración.

  • Se optimizó el proceso de cálculo de la máscara de transacciones en IMCI.

  • Al usar la función de cambio adaptativo de plan de ejecución, si hay un volumen alto de E/S de lectura de datos fríos, el tiempo máximo de ejecución para el cambio aumenta automáticamente.

  • Se ajustó la longitud máxima de visualización de las sentencias de consulta en SQL Trace.

  • La función de índice columnstore incorpora un filtro dinámico para mejorar la eficiencia de unión entre tablas.

  • Al establecer el valor del parámetro loose_optimizer_switch mediante una sentencia SET_VAR HINT, ya no es obligatorio incluir una coma al final.

Correcciones de bugs

Descripción

  • Se corrigió un resultado de ordenamiento incorrecto al usar IMCI para consultar datos TopK con orden inverso, cuando las tablas involucradas contenían demasiados valores NULL.

  • Se solucionó un problema que impedía recuperar datos columnstore si un nodo columnstore de solo lectura se iniciaba durante la ejecución de una DDL que involucraba una tabla con índice columnstore.

  • Se corrigió una fuga de espacio provocada por una excepción durante una operación de reducción.

  • Se solucionó un problema donde un nodo de solo lectura presentaba anomalías por la modificación concurrente de estructuras de datos durante el proceso de replicación física de X-Engine.

  • Se corrigió un fallo de actualización al pasar un X-Engine de una réplica de lectura a un standby.

  • Se solucionó un consumo excesivo de memoria del optimizador al usar un índice columnstore en escenarios de consultas de alta concurrencia.

  • Se corrigió un problema de estadísticas inexactas al actualizar las estadísticas de una tabla particionada con índice columnstore, ya que solo se muestreaban algunas particiones.

  • Se solucionó un problema que impedía enrutar a un nodo de índice columnstore una sentencia de consulta que contenía una subconsulta con un conjunto de resultados vacío.

  • Se corrigió un problema donde las reglas CCL coincidentes por valor DIGEST podían dejar de ser válidas tras una actualización del clúster.

  • Se solucionó una lentitud anormal al consultar la tabla information_schema.tables cuando la base de datos contenía tablas externas CSV u ORC.

  • Se corrigió un fallo de análisis sintáctico de Flink CDC causado por un table_id duplicado en el Binlog global de un Multi-master Cluster (Database/Table).

  • Se solucionó un problema que impedía consultar los datos de transacciones reanudables cuando se usaba esta función junto con la consulta paralela habilitada.

  • Se corrigió un fallo al agregar un nuevo nodo RO debido a un desplazamiento de registro bajo del nodo de solo lectura (RO) al ejecutar el nuevo proceso de restauración de bases de datos y tablas.

  • Se solucionó un problema donde un hilo no podía salir debido a un disco lleno durante la ejecución del nuevo proceso de restauración de bases de datos y tablas.

  • Se corrigió un consumo elevado de memoria al usar Prepare Statement para manejar muchas solicitudes concurrentes o ejecutar consultas complejas.

  • Se solucionó un problema de resultados incorrectos al usar IMCI para consultar una vista que contenía datos de tipo BIT.

  • Se corrigió el error "ERROR 1748 (HY000) Found a row not matching the given partition set" al insertar datos en una tabla particionada por KEY. Este error se debía a que no se consideraba el STORED GENERATED COLUMN durante la poda de una tabla particionada por KEY.

  • Se solucionó un problema donde las nuevas conexiones seguían accediendo a un archivo antiguo descartado debido a operaciones DDL y HA frecuentes al archivar datos fríos como un archivo IBD.

2023

8.0.1.1.39

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Admite el acceso a la información de la vista INFORMATION_SCHEMA del almacenamiento en columnas desde cualquier nodo. De forma predeterminada, agrega y muestra la información de todos los nodos de almacenamiento en columnas.

  • Simplifica el uso de los parámetros para la distribución automática de solicitudes entre los nodos de almacenamiento en filas y de almacenamiento en columnas.

  • Cuando una instrucción de consulta no es compatible con el motor de almacenamiento en columnas, establezca el parámetro use_imci_engine en FORCED y luego ejecute la instrucción. En este caso, el resultado de la consulta devolverá el motivo por el que no se puede usar el motor de almacenamiento en columnas.

  • Admite el uso de subconsultas correlacionadas en la cláusula Grouping y elimina las subconsultas correlacionadas complejas.

  • El Binlog global de un Multi-master Cluster admite GTID (identificador global de transacciones).

  • Optimiza la función de escalado horizontal del Buffer Pool. Por ejemplo, cancela automáticamente las operaciones previas de reducción de escala y realiza el escalado horizontal de manera oportuna.

  • Optimiza el proceso de inicio de IMCI para reducir el tiempo de preparación de los índices de columnas.

  • Admite el enrutamiento adaptativo para consultas híbridas de filas y columnas.

  • Mejora el rendimiento de lectura de los nodos RO en escenarios donde un índice secundario regresa a la clave principal.

2023-12-14

Correcciones de bugs

  • Corrige una falla de nodo provocada por un formato incorrecto de CONNECTION definido por el usuario al crear una tabla externa de OSS.

  • Incorpora un parche de la versión oficial de MySQL 8.0.17 para corregir un problema de reversión de autoincremento causado por la modificación de auto_increment_increment en el cliente.

  • Incorpora un parche de la versión oficial de MySQL 8.0.16 para corregir un interbloqueo provocado por un Blob de tamaño excesivo.

  • Corrige una falla de nodo RO causada por Runtime Apply.

  • Corrige un problema en el que se bloqueaba la escritura de páginas sucias del nodo RW porque, en casos especiales, no finalizaba su relación de replicación con un nodo RO defectuoso.

  • Corrige un problema de reversión de autoincremento causado por la expulsión de la caché de tablas debido a una cantidad excesiva de tablas después de una alta disponibilidad (HA).

  • Corrige un problema en el que un nodo de lectura/escritura de un Multi-master Cluster podía fallar al iniciar si se reiniciaba el centro de caché.

  • Corrige un problema en el que una tabla podía fallar al abrirse durante el cambio del endpoint de escritura en un Multi-master Cluster.

  • Corrige un consumo excesivo de memoria durante la replicación física en un nodo RO.

  • Corrige un problema en el que un outline de un nodo AP no surtía efecto cuando la longitud del token SQL superaba el valor del parámetro max_digest_length.

  • Corrige un problema en el que la adición o eliminación de un outline no se sincronizaba con un nodo RO después de actualizar dicho nodo.

  • Corrige un tiempo de respuesta elevado en escrituras de baja concurrencia hacia tablas en X-Engine.

  • Corrige un error "table definition has changed" que ocurría al aplicar Hybrid Plan a una instrucción SQL con Order By cuyas filas de salida contenían NULL.

8.0.1.1.38.1

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

En los clústeres sin ningún Statement Outline agregado, si se añade uno después de actualizar la versión, la coincidencia de outlines ya no se ve afectada por el juego de caracteres.

2023-11-07

8.0.1.1.38

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Admite el uso del procedimiento almacenado integrado dbms_oss.delete_table_flie para eliminar archivos no utilizados en OSS.

  • Optimiza la función de restauración de bases de datos y tablas. Por ejemplo, mejora la velocidad de restauración y admite la reversión ante fallos de tareas.

2023-10-31

Correcciones de bugs

  • Corrige un problema que impedía restaurar a un punto en el tiempo una tabla con un índice de columnas IMCI.

  • Corrige un problema en el que el operador GroupJoin consumía demasiada memoria en ciertos escenarios y provocaba el fallo de la consulta.

  • Corrige un fallo al revertir un RowID avanzado durante la carga de un checkpoint.

  • Corrige un problema en el que un nodo de solo lectura (RO) que accedía a X-Engine no podía reportar la información de referencia de versión, lo que impedía la recuperación de espacio.

  • Corrige un problema en el que el optimizador no estimaba con precisión la selectividad de Join al unir una columna sin signo con una columna con signo.

  • Corrige un problema que impedía ejecutar algunas consultas con predicados OR porque el plan de consulta no se vinculaba a la columna correcta.

  • Corrige un problema en el que una consulta finalizada por el programador podía provocar el reinicio de la base de datos.

  • Corrige una degradación del rendimiento de E/S en el escenario de materialización tardía del índice de almacenamiento en columnas.

  • Corrige una falla poco común de clúster en un Multi-master Cluster causada por no liberar a tiempo el bloqueo de metadatos de una tarea programada.

  • Corrige una lentitud en las consultas al acceder a una tabla en X-Engine, provocada por la imposibilidad de usar un escaneo de cobertura de índice tras acceder al índice de clave principal.

  • Corrige una interrupción del enlace de migración causada por el reinicio de un clúster de PolarDB en un escenario de actualización con un clic de RDS for MySQL a PolarDB for MySQL.

  • Corrige una falla de nodo réplica provocada por una secuencia extrema de registros redo, originada por la concurrencia entre la eliminación de una tabla o índice en X-Engine y una operación SwitchMemtable en segundo plano poco frecuente.

8.0.1.1.37

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Optimiza la velocidad a la que un nodo de solo lectura (RO) lee los registros Redo en escenarios con Blobs grandes.

  • Admite la llamada a procedimientos almacenados integrados mediante nombres en mayúsculas.

2023-09-21

Correcciones de bugs

  • Corrige una falla de nodo provocada por agregar comillas invertidas a los parámetros de entrada al llamar a ciertos procedimientos almacenados integrados.

  • Corrige una posible falla de nodo al eliminar la última regla CCL del mismo tipo de instrucción SQL cuando solo se especificaba la palabra clave, pero no el esquema ni la tabla.

  • Corrige una falla poco común durante la promoción de un nuevo nodo de solo lectura (RO) a nodo de lectura/escritura (RW). Esto ocurría si existía un registro de extensión de archivo posterior al checkpoint en el nodo RW cuando el nodo RO se conectaba.

8.0.1.1.36

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Mejora la velocidad de archivado de datos fríos en OSS con formato CSV.

  • Optimiza el modelo de costos para el acceso a índices no cubiertos con condiciones de igualdad.

  • Agrega el parámetro opt_non_covering_key_cost para controlar si se considera el costo de posicionamiento inicial de un índice secundario.

  • Agrega el parámetro worst_seek_records_threshold para controlar si se limita el costo máximo de E/S del acceso a índices no cubiertos con condiciones de igualdad durante la estimación de costos.

  • Agrega un mecanismo de degradación por tiempo de espera a la función semisincrónica de Redo.

2023-08-22

Correcciones de bugs

  • Corrige una falla en la función de optimización JPPD cuando una CTE contenía una CTE anidada con múltiples referencias.

  • Corrige un problema en el que el nodo Slave no activaba el mecanismo de reconexión al apagar y reiniciar el nodo principal.

  • Corrige un problema potencial al usar la función JSON_REMOVE en la sintaxis para actualizar datos de tipo BLOB.

  • Corrige un reinicio anómalo de nodo causado por el acceso a memoria no válida durante la comprobación de interbloqueos de transacciones.

8.0.1.1.35.1

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

Corrige un problema de alto consumo de CPU en clústeres de especificaciones bajas.

2023-07-13

8.0.1.1.35

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Agrega la instrucción SELECT INTO DEFAULT OSSOUTFILE.

  • Agrega el parámetro innodb_polar_import_tablespace_strict_mode, cuyo valor predeterminado es ON. Esto significa que se reportará un error si la estructura de la tabla contiene un índice de texto completo durante una operación de restauración de bases de datos y tablas.

  • Admite la consulta de datos de una partición específica en una tabla particionada mediante un índice de almacenamiento en columnas.

  • SQL Trace admite el muestreo de instrucciones SQL específicas.

2023-07-05

Correcciones de bugs

  • Corrige un problema que permitía a un usuario normal eliminar sys.

  • Corrige un reinicio anómalo de nodo al restaurar bases de datos y tablas en una tabla particionada después de una alta disponibilidad (HA).

  • Corrige un fallo del nodo Standby para cambiar al nodo maestro durante una restauración a un punto en el tiempo de un Multi-master Cluster.

  • Corrige un problema en el que los procedimientos almacenados, las funciones definidas por el usuario, las tareas programadas, las vistas y los triggers de un Multi-master Cluster no estaban aislados entre distintos nodos.

  • Corrige un problema que impedía alternar entre distintos nodos los procedimientos almacenados, las funciones definidas por el usuario, las tareas programadas, las vistas y los triggers de un Multi-master Cluster.

  • Corrige un problema en el que los datos de la base de datos Information_schema no se sincronizaban ni actualizaban tras modificar datos cuando la función de caché de consultas estaba habilitada en un Multi-master Cluster.

  • Corrige una limpieza lenta en un Multi-master Cluster cuando la cantidad de tablas de datos era demasiado grande.

8.0.1.1.34

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Admite la creación de un índice de almacenamiento en columnas sobre una columna virtual.

  • Admite el uso de la papelera de reciclaje en tablas con un índice de almacenamiento en columnas creado.

  • Puede create hybrid partitions en tablas.

  • El motor de consultas federadas admite delegar la sintaxis Limit Offset a la base de datos remota para su ejecución.

  • El motor de consultas federadas admite delegar todas las condiciones compatibles al servidor remoto para su ejecución y devuelve únicamente las columnas requeridas por la consulta.

  • Agrega la función de segmentación de datos de clave principal call dbms_dts.show_parallel_ranges (<schema_name>, <table_name>, [<suggestion_ranges>]).

  • Admite el uso de la función de archivado de datos fríos en tablas con una clave principal de incremento automático.

  • Optimiza la capacidad de consulta de OSS. Es decir, tras habilitar la función de consulta paralela elástica, si el valor del parámetro loose_csv_max_oss_threads del sistema es mayor que 1, se ejecuta directamente una consulta paralela.

  • Optimiza el contenido de los mensajes de error para formatos de archivo incorrectos en tablas externas de OSS.

  • Admite agregar la opción without validation en la sintaxis ALTER TABLE PARTITION BY RANGE para convertir rápidamente una tabla estándar en una tabla particionada por RANGE.

  • Admite convertir una tabla particionada con el atributo 'UNIQUE CHECK IGNORE=1' en una tabla estándar mediante la sintaxis ALTER TABLE REMOVE PARTITIONING.

  • Optimiza el cálculo del hash de digest al ejecutar una instrucción sin Outline durante el proceso de Statement Outline, evitando que se omita.

  • Agrega la función InnoDB on OSS.

  • Tras actualizar Statement Outline y Concurrency Control en un Multi-master Cluster, los demás nodos maestros se actualizan automáticamente.

  • Optimiza el contenido de los mensajes de error ortográficos.

  • Optimiza el rendimiento de escritura del nodo RW tras habilitar la replicación semisincrónica de StandBy.

  • Se agregó compatibilidad con el tipo de tabla particionada LIST DEFAULT HASH.

  • Admite la creación de una tabla particionada LIST DEFAULT HASH mediante la sintaxis CREATE LIKE.

  • La sintaxis add partition para crear una tabla particionada LIST DEFAULT HASH admite la opción without validation para agregar una partición LIST.

  • SQL Trace admite el seguimiento de la información de ejecución de consultas lentas.

  • Optimiza la granularidad de los bloqueos dentro de PolarFS, lo que mejora significativamente el rendimiento en algunos escenarios de alta carga.

2023-06-12

Correcciones de bugs

  • Corrige un problema que impedía a OSS leer archivos JSON.

  • Corrige un fallo en la generación de Hint Plan en modo ps.

  • Corrige un problema en el que el avance del LSN del checkpoint no cumplía con lo esperado.

  • Corrige un problema en el que view_definition aparecía vacío en la vista del sistema.

  • Corrige un error potencial al ejecutar una consulta en un nodo RO mientras se realizaba una operación ALTER TABLE ... IMPORT TABLESPACE en el nodo RW.

  • Corrige un problema que impedía leer datos con \n después de ser archivados por DLM.

  • Corrige un problema en el que podían quedar archivos temporales en OSS tras archivar datos fríos.

  • Corrige un problema en el que solo se leía el primer archivo al consultar datos fríos de OSS en formato CSV.

  • Corrige un problema en el que el contador interno del pool de hilos podía volverse anómalo al registrar registros de consultas lentas de forma concurrente, lo que generaba una acumulación de solicitudes SQL.

  • Corrige un posible conflicto de columnas de incremento automático durante comandos INSERT concurrentes en un Multi-master Cluster.

  • Corrige un retraso de replicación al reproducir registros Redo de una tabla ancha en un nodo RO.

  • Corrige un resultado de consulta incorrecto al usar la función de optimización de delegación de Limit Offset con una instrucción de consulta que contenía una función de ventana.

  • Corrige un problema en el que se retenía un bloqueo durante toda la ejecución de una instrucción CHECK TABLE en un Multi-master Cluster.

  • Corrige un problema que impedía eliminar el archivo de origen en OSS al ejecutar el comando ALTER TABLE engine = csv storage oss, force; .

  • Corrige una falla de clúster provocada por el ajuste dinámico de la caché de un Multi-master Cluster.

  • Corrige un problema que impedía a un Multi-master Cluster exportar un tablespace.

  • Corrige una delegación incorrecta de una tabla con un campo NULL cuando el parámetro engine_condition_pushdown se establecía en true.

  • Corrige un conjunto de resultados potencialmente incorrecto al usar la función Fast Query Cache para comparar Time y timestamp.

  • Corrige una posible regresión de rendimiento al habilitar dinámicamente PolarTrans en un escenario de actualización de alta concurrencia.

8.0.1.1.33

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • El índice de almacenamiento en columnas admite la adición instantánea de columnas mediante la reconstrucción de sus datos.

  • El índice de almacenamiento en columnas admite la función REGEXPR.

  • El índice de almacenamiento en columnas admite la optimización de poda basada en condiciones relacionadas con IS NULL e IS NOT NULL.

  • Multi-master Cluster (Database/Table) admite el uso de la función de archivado de datos fríos.

  • Al actualizar una versión secundaria del motor en un clúster Multi-master Cluster (Database/Table), se admite la actualización paralela de cada nodo del clúster.

  • Multi-master Cluster (Database/Table) admite la persistencia de estadísticas.

  • Optimiza el Optimizer trace cuando se habilita la delegación de condiciones de OSS para tablas externas de OSS.

  • Los registros Binlog no se generan durante el archivado manual y automático de datos fríos.

  • La consistencia global (modo de alto rendimiento) agrega el parámetro Innodb_scc_timeout_count para registrar la cantidad de tiempos de espera agotados durante una consulta.

  • La consistencia global (modo de alto rendimiento) agrega el parámetro Innodb_scc_timeout_degrade_count para registrar cuántas veces una consulta agota el tiempo de espera y cambia a una consulta asincrónica.

  • Admite la consulta de información gtid en un nodo de solo lectura.

  • Hint Plan agrega los tipos de hint BNL, BKA y MRR.

  • Fast Query Cache agrega la variable qc_weak_read_time para leer la caché no en tiempo real.

  • La función Statement Outline agrega la interfaz dbms_outln.add_optimizer_outline('schema', 'hints', 'query') para agregar Optimizer Hints.

  • Agrega la función Auto Plan Cache.

  • SQL Sharing usa el formato JSON para mostrar plan_extra, ref_by y extra.

  • Muestra el plan de ejecución en los datos extendidos del registro lento.

  • Al usar Statement Outline, si los Index Hints especificados no existen, se reporta una advertencia en lugar de un error.

  • SQL Sharing agrega la variable by_expr_ignore_charset. Tras establecer by_expr_ignore_charset en ON, se eliminan las diferencias de digest generadas por instrucciones con Order By o Group By bajo distintos juegos de caracteres. Sin embargo, al configurarlo en ON, todos los valores de digest generados en este modo serán diferentes de los generados antes de dicha configuración.

  • Optimiza el consumo de memoria al escanear tablas en la papelera de reciclaje.

  • Proporciona capacidad de motor multiversión.

2023-04-14

Correcciones de bugs

  • Corrige una falla de nodo de base de datos al ejecutar una operación de comprobación en una tabla externa de OSS vacía.

  • Corrige un error ocasional al ejecutar una consulta en un nodo global de solo lectura de un Multi-master Cluster (Database/Table).

  • Corrige un problema en el que el tamaño del tablespace de metadatos de un Multi-master Cluster (Database/Table) no se sincronizaba.

  • Corrige un problema en el que los datos de tablas personalizadas del tablespace del sistema de un Multi-master Cluster (Database/Table) se revertían.

  • Corrige un problema que impedía reclamar los registros undo tras habilitar la función de reclamación de registros undo.

  • Corrige un problema de tiempo de espera de lectura al establecer la replicación física en un nodo de solo lectura, lo que impedía la conexión a la base de datos.

  • Corrige una falla de nodo causada por ejecutar instrucciones ADD INDEX o DROP INDEX después de ejecutar ALTER TABLE DISCARD tablespace en un Multi-master Cluster (Database/Table).

8.0.1.1.32

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • La función de índice de almacenamiento en columnas admite el tipo de datos DECIMAL de MySQL.

  • Al crear un índice de almacenamiento en columnas, admite ordenar los datos según una columna especificada para mejorar la eficiencia de la poda.

  • La función de índice de almacenamiento en columnas admite el escaneo de datos basado en archivos con formato ORC o PARQUET almacenados en OSS.

  • El cálculo basado en costos admite delegar la condición de outer join de una derived table materializada hacia el interior de la derived table.

  • Optimiza la capacidad del optimizador para estimar el número de filas escaneadas en columnas de unión dentro de un escenario de derivación de igualdad.

  • La función de eliminación de joins del optimizador admite eliminar la tabla interna de un left join (incluidas tablas internas con joins anidados de varios niveles y Semi-Joins).

  • Admite la sintaxis CAST(... AS INT) , con un comportamiento idéntico al de CAST(... AS SIGNED INT) .

  • Los clústeres multi-master admiten la función Multi-master backup.

2023-02-21

Correcciones de bugs

  • Corrige un problema de ralentización del rendimiento de la base de datos en escenarios con transacciones de larga duración.

  • Corrige problemas de compatibilidad entre la consistencia global (modo de alto rendimiento) y PQ.

  • Corrige un problema en el que usar la función de transporte transparente de tablespaces en un Multi-master Cluster bloqueaba la ejecución de DDL en otros nodos.

  • Corrige un problema en el que el tamaño libre de una tabla se mostraba como 4 PB con cierta probabilidad.

  • Corrige un problema que impedía iniciar algunos nodos de un Multi-master Cluster cuando se reiniciaban varios nodos principales en paralelo.

  • Corrige una falla de clúster al cambiar el punto de escritura de índices de texto completo e índices de almacenamiento en columnas en un Multi-master Cluster.

  • Corrige una excepción de acceso a la caché de la base de datos al ejecutar un DDL de copia en una tabla con Foreign Key.

  • Ajusta los parámetros de tiempo de espera relacionados con las conexiones de replicación física para evitar problemas de intermitencia en caso de falla de una máquina física.

  • Corrige un problema que impedía recuperar los bloqueos de tabla durante la recuperación ante fallas de un Multi-master Cluster.

  • Corrige una posible falla de nodo al acceder a la tabla information_schema.tables mientras se agregaba un nodo nuevo.

  • Corrige un problema de pérdida de páginas sucias durante la fase de recuperación ante fallas de un Multi-master Cluster.

  • Corrige una falla de clúster al cambiar el punto de escritura después de eliminar una base de datos en un Multi-master Cluster.

  • Corrige un problema de acceso a memoria no válida al usar el motor TempTable con el pool de hilos habilitado.

2022

8.0.1.1.31

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • La edición Standard de PolarDB for MySQL incorpora la función de conmutación automática de alta disponibilidad de PolarDB. Esta función se basa en la característica Reservation de los discos en la nube NVMe (Non-Volatile Memory Express).

  • La función CCL (Concurrency Control) incluye el procedimiento almacenado integrado dbms_ccl.add_ccl_digest_rule, que asocia las reglas de CCL mediante un valor digest.

  • Los procedimientos almacenados integrados admiten variables que inician con @ como valores de entrada.

  • Se omite el punto y coma al final de la instrucción SQL en el parámetro query de los procedimientos almacenados integrados dbms_ccl.add_ccl_digest_rule, dbms_outln.add_index_outline y dbms_outln.add_optimizer_outline.

  • Statement Outline es compatible con todas las cláusulas UNION.

  • El nombre de usuario y la contraseña ya no se almacenan ni se muestran en texto sin formato en la tabla mysql.servers.

    Nota

    El nombre de usuario y la contraseña de un Server existente no se cifran después de una actualización. Debe eliminarlo y volver a crearlo manualmente.

  • Se admite el uso de la función Limit Offset pushdown al acceder a una partición específica dentro de una tabla particionada.

  • Los clústeres de la serie de productos X-Engine son compatibles con la función DDL paralelo.

  • La función de pool de hilos incorpora capacidades de autonomía en el kernel.

  • La función de pool de hilos es compatible con CCL. Si habilita Thread Pool y CCL bloquea la conexión de un usuario, el pool de hilos marca dicha conexión y crea hilos adicionales para ejecutar instrucciones SQL en otras conexiones.

  • Se añade la sintaxis de hint OSS_REPLACE_EXISTED_FILE(). Al ejecutar la instrucción SELECT INTO OSSOUTFILE, si el archivo actual ya existe, se sobrescribe directamente el archivo original.

  • Se admiten consultas paralelas en una sola máquina sobre el motor OSS.

  • Se agrega la tabla INNODB_GLOBAL_DDL_LOCK_INFO a la base de datos information_schema para consultar los bloqueos globales en un Multi-master Cluster.

  • Se incorpora la función AWR SQL Detail para auditar y gestionar instrucciones como DDL, LOCK DB y LOCK TABLE.

  • Se admite la generación de estadísticas de índices columnstore mediante el comando ANALYZE TABLE para facilitar las decisiones de consulta.

  • Las tablas con un índice columnstore admiten la función de restauración de bases de datos (tablas).

  • La función de índice columnstore es compatible con la función cast_as_real.

  • Se permite consultar el estado y el progreso de compilación de un índice columnstore mediante la tabla INFORATION_SCHEMA.IMCI_ASYNC_DDL_STATS.

  • Se optimizan las consultas join cuyo campo de unión es de tipo cadena en el índice columnstore.

2022-12-07

Correcciones de bugs

  • Se corrige un problema que impedía usar IF NOT EXISTS en la sintaxis para crear un Server.

  • Se soluciona una posible excepción al ejecutar una instrucción DDL en un nodo maestro de un Multi-master Cluster.

  • Se resuelve un posible interbloqueo al consultar tablas de la base de datos information_schema en un Multi-master Cluster.

  • Se corrige una degradación de rendimiento en operaciones replace dentro de un Multi-master Cluster.

  • Se soluciona un problema que exigía un bloqueo global al crear una tabla temporal implícita en un Multi-master Cluster.

  • Se corrige un posible bloqueo durante la recuperación tras fallos de un Multi-master Cluster.

  • Se soluciona un error en el conteo de lecturas lógicas de la función SQL Trace, que generaba resultados imprecisos.

  • Se corrige un resultado incorrecto cuando el índice columnstore contenía datos de tipo ENUM y SET.

  • Se resuelve un problema que impedía enrutar al almacenamiento columnar las instrucciones SQL con ROLL UP y GROUP BY para su ejecución.

8.0.1.1.30

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Se optimiza la operación UNION ALL de la función de índice columnstore.

  • La función de índice columnstore incorpora un built-in stored procedure para facilitar la creación de índices columnstore.

  • Se añade el parámetro global imci_default_pack_shift a la función de índice columnstore para controlar el tamaño de paquete predeterminado al crear este tipo de índice.

  • La función de índice columnstore utiliza la técnica de eliminación de particiones (partition pruning) para mejorar el rendimiento de las consultas en tablas particionadas.

  • El índice columnstore admite los tipos de datos BIT, JSON y GEOMETRY.

  • La función de índice columnstore es compatible con la operación EXCHANGE PARTITION.

  • Se mejora el rendimiento de la consistencia global (modo de alto rendimiento) mediante la tecnología MTT.

  • Multi-master Cluster Edition permite la expulsión adaptativa de páginas de datos desde el centro de caché.

  • La profundidad recursiva de un documento JSON admite hasta 150 niveles.

  • Multi-master Cluster Edition incorpora el parámetro mm_flush_autoinc_when_unlock. Este controla si se vacía la información autoinc de la tabla del sistema al liberar un bloqueo global de base de datos o tabla. Su valor predeterminado es false.

  • Statement Outline ahora asocia todas las instrucciones SQL que comparten el mismo valor Digest cuando Schema_name está vacío.

  • Fast Query Cache permite acceder a la caché de las tablas de metadatos (information_schema.tables/columns) de la base de datos.

  • Se añade la función SQL Trace para rastrear el proceso de ejecución de las instrucciones SQL.

  • Se incorpora la instrucción SELECT INTO OSSOUTFILE para exportar una tabla local (una tabla en PolarFS) a OSS.

2022-10-29

Correcciones de bugs

  • Se corrige una lectura incompleta de datos al transferirlos de forma remota mediante RDMA.

  • Se soluciona un estado anómalo del hilo de limpieza de tablas cuando se apagaba el nodo maestro.

  • Se resuelve un interbloqueo entre Offline Master y WAR.

  • Se corrige un problema que impedía apagar correctamente el nodo maestro cuando perdía la conexión con el centro de caché.

  • Se soluciona un posible fallo del nodo al escribir una clave primaria implícita mediante una tarea programada.

  • Se corrige un registro indebido en Binlog al ejecutar una instrucción SQL durante una actualización en caliente.

8.0.1.1.29.1

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

Se corrige un fallo en un nodo RO provocado por un conflicto de hash en el nombre de archivo.

2022-09-17

8.0.1.1.29

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Los nodos de solo lectura admiten la función failover with hot replica.

  • Concurrency Control (CCL) incorpora el parámetro ccl_mode. Cuando el tráfico de acceso a la base de datos alcanza el límite de control de concurrencia, se rechazan las demás solicitudes de acceso al clúster actual.

  • La sintaxis para crear un servidor OSS incluye el parámetro oss_sts_token para configurar una credencial de acceso temporal a OSS.

  • Se admite una longitud de digest adaptable. El espacio de memoria para calcular el digest de la instrucción se ajusta automáticamente según la longitud de la consulta.

  • Se permite consultar, mediante el endpoint del clúster, las tablas relacionadas con el índice columnstore en INFORMATION_SCHAME.

  • La función de índice columnstore añade un modo ETL. Este modo permite crear una tabla a partir de los resultados de consulta de un nodo columnstore de solo lectura y escribir dichos resultados en una tabla.

  • Se optimiza el rendimiento de las consultas TopK (consultas paginadas con la forma order by a limit n,m) en la función de índice columnstore.

  • El índice columnstore incorpora el estado Last_stmt_use_imci para comprobar si una instrucción de consulta utilizó este tipo de índice.

  • La función de índice columnstore añade la variable global polar_enable_implicit_imci_with_create_table, que permite crear automáticamente un índice columnstore al ejecutar una instrucción CREATE TABLE.

  • El índice columnstore admite el uso de un Cursor.

  • Se permite utilizar un índice columnstore durante una consulta de transacción explícita.

  • Es posible crear un índice columnstore en una tabla particionada.

2022-09-08

Correcciones de bugs

  • Se corrige una inconsistencia entre la caché y el archivo provocada por la reversión de una transacción al usar el algoritmo copy en una instrucción DDL.

  • Se soluciona un problema donde la eliminación de una base de datos no quedaba registrada en el registro lento.

  • Se corrige un resultado incorrecto cuando una consulta combinaba Limit offset pushdown con la optimización MRR.

8.0.1.1.28.1

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

Optimización del pool de hilos: cuando una transacción de base de datos espera un bloqueo de información de metadatos o un bloqueo de fila, el pool de hilos genera hilos adicionales para procesar nuevas solicitudes.

2022-08-12

8.0.1.1.28

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Se admite la función de índice columnstore. Gracias a esta función y al motor de ejecución vectorizada paralela para datos columnares, la eficiencia de ejecución de consultas complejas mejora considerablemente. Para obtener más información, consulte Columnstore index.

  • Los usuarios pueden crear y utilizar tablas del motor Federated.

  • Los nodos de solo lectura admiten tablas temporales en memoria personalizadas (actualmente solo los motores MEMORY y MyISAM).

  • Se optimiza la ordenación DDL: el ordenamiento por mezcla bidireccional cambia a multidireccional para reducir las operaciones de E/S y mejorar el rendimiento al agregar índices DDL.

  • Se incorpora la función DDL read-ahead para aumentar la eficiencia en la creación de índices.

  • La sintaxis para crear un servidor OSS añade el parámetro oss_prefix para configurar la ruta del archivo en OSS.

2022-07-20

8.0.1.1.27

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

Se corrige un retraso excesivo en la replicación física cuando la carga del clúster es baja.

2022-05-25

Se soluciona un bloqueo en la limpieza de LRU List que impedía liberar Pages cuando el Buffer Pool acumulaba demasiadas páginas modificadas y el vaciado era lento.

Se optimiza la asignación de memoria durante el proceso de inserción de datos.

Se corrige un problema donde el comando show engine innodb status mostraba información completa de interbloqueos cuando innodb_show_verbose_deadlock tenía el valor ON (valor predeterminado).

Se soluciona un fallo en un nuevo nodo RO registrado en el clúster después de que el nodo RW completara una operación de undo truncate.

Se corrige un conjunto de resultados incorrecto en el escaneo SKIP_SCAN después de marcar datos de la base de datos para su eliminación.

8.0.1.1.26

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

Se corrige un resultado incorrecto en Using index for group by.

2022-05-05

Se soluciona un conjunto de resultados incorrecto en el escaneo SKIP_SCAN después de marcar datos de la base de datos para su eliminación.

Se corrige un posible conjunto de resultados erróneo en el escaneo SKIP_SCAN cuando existían varios grupos de datos en el prefijo del índice.

8.0.1.1.25

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

Se corrige un resultado incorrecto en Using index for group by.

2022-04-12

8.0.1.1.24

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

  • Se corrige un problema donde threadpool_high_priority_users no se analizaba sintácticamente de forma correcta al iniciar la base de datos.

  • Se soluciona un error en el que la modificación dinámica de threadpool_high_priority_users afectaba otros parámetros.

  • Se corrige un fallo poco frecuente en un nodo de solo lectura de X-Engine al reproducir registros Redo.

2022-03-11

8.0.1.1.23

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Se admite la función Strict Consistency Cluster (lectura de consistencia fuerte en nodos RO).

  • Statement Outline es compatible con PrepareStatement.

  • Se incorpora la función hot replica para optimizar aún más la eficiencia de la alta disponibilidad.

2022-01-20

Correcciones de bugs

  • Se corrige un problema donde Fast Query Cache adquiría un bloqueo MDL en un nodo RO y bloqueaba la sincronización de registros Redo.

  • Se admite la sintaxis SELECT FOR UPDATE/SHARE WAIT N. Aquí, N representa el tiempo de espera en segundos para un bloqueo de fila individual. Si una consulta necesita bloquear varias filas, el tiempo no se acumula; la detección de tiempo de espera solo se aplica a una fila. Si la espera supera los N segundos, se devuelve el error de tiempo de espera de bloqueo Lock wait timeout exceeded; try restarting transaction.

2021

8.0.1.1.22

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

  • Se mejora la precisión al estimar el paralelismo para accesos por igualdad de índice en tablas particionadas dentro de un plan paralelo.

  • Se corrige un problema donde la estimación de costos de estadísticas por parte del optimizador consumía demasiado tiempo en escenarios específicos.

  • Se soluciona un error en el que el optimizador no elegía una mejor ruta de rango de índice para ciertas instrucciones GROUP BY.

  • Se corrige un fallo al crear un nuevo archivo de registro Redo después de que un nodo Standby pasara a ser nodo primario mediante HA.

2021-12-22

8.0.1.1.21

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

  • Se corrige un resultado incorrecto de la función GROUP_CONCAT causado por un desbordamiento aritmético cuando el valor del parámetro group_concat_max_len era grande.

  • Se soluciona un error de datos que ocurría después de que un nodo Standby en una zona secundaria se recuperara de un fallo.

  • Se corrige una anomalía de datos que surgía cuando un nodo Standby en una zona secundaria cambiaba a nodo primario (nodo RW).

  • Se resuelve un problema donde el optimizador solo aplicaba filtrado por índice de columna única, y no por índice compuesto, al seleccionar una condición de filtro de índice compuesto multicolumna.

2021-11-26

8.0.1.1.19

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Se añaden nuevas reglas de control de concurrencia (CCL) para operaciones DDL.

  • Se incorpora el parámetro restrict_on_limit_without_order para controlar si se permite la ejecución de consultas paralelas cuando la consulta tiene una cláusula limit pero carece de order by.

2021-09-18

Correcciones de bugs

  • Se corrige un problema en consultas paralelas donde la ordenación implícita de GROUP BY generaba un conjunto de resultados desordenado al usar un índice en la columna GROUP BY.

  • Se soluciona un error en el que el campo de identificador de transacción del registro de auditoría siempre mostraba 0 al usar el pool de hilos.

8.0.1.1.18

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

El kernel de la base de datos ahora admite cargas de transacciones reanudables y permite que los nodos de solo lectura lean transacciones no confirmadas.

2021-08-14

Correcciones de bugs

Se optimiza master_key_id_mutex para permitir la ejecución paralela de operaciones DDL.

8.0.1.1.17

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Se añade el parámetro polar_replica_work_on_nonblock_mdl_mode. Al habilitarlo, las transacciones no confirmadas con nivel de aislamiento RU/RC en un nodo de solo lectura dejan de bloquear las operaciones DDL del nodo primario. Sin embargo, ya no se garantizan las propiedades transaccionales de las definiciones de tabla en el nodo de solo lectura.

  • Se optimiza el mecanismo de mantenimiento de estadísticas en escenarios con una cantidad masiva de tablas (como los servicios SaaS). Esto mejora significativamente el rendimiento al consultar estructuras de tabla (desc table) y en las operaciones de lectura y escritura bajo alta concurrencia.

2021-07-23

Correcciones de bugs

  • Se corrige un fallo en m_recv_bits.is_set(fold) de un nodo de solo lectura durante la replicación física bajo alta presión de concurrencia.

  • Se soluciona un fallo durante la reproducción de registros en un nodo de solo lectura sometido a alta concurrencia.

8.0.1.1.16

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

Cuando una solicitud de ACL Cache Lock queda en espera, se imprime información sobre el hilo solicitante y el hilo que retuvo el bloqueo primero en el registro de errores del maestro para facilitar el diagnóstico del problema.

2021-06-24

8.0.1.1.15

Categoría

Descripción

Fecha de lanzamiento

Funciones nuevas y optimizadas

  • TDE ahora cifra automáticamente las tablas nuevas creadas en un clúster MySQL.

  • Las tablas de datos de MySQL ahora admiten el juego de caracteres utf8mb4_0900_bin.

2021-05-25

Correcciones de bugs

  • Se corrige un fallo de la base de datos causado por un registro demasiado largo generado al revertir una operación Update después de un instant add column.

  • Se soluciona un problema donde las instrucciones DDL obligaban a las tablas mysql.slow_log y mysql.general_log a usar el motor InnoDB.

  • Se corrige un conjunto de resultados incorrecto provocado por un error en la información de metadatos de la función REGEXP.

  • Se resuelve un fallo de la base de datos originado al revertir una operación Update en una columna virtual.

  • Se ajusta la estrategia que define si un nodo RO debe activar un checkpoint inmediatamente al registrarse por primera vez con el nodo primario. Es posible que no se active ningún checkpoint si la diferencia de LSN es menor que el umbral especificado.

8.0.1.1.14

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Optimiza el mantenimiento de la información interna de índices en escenarios con una cantidad masiva de tablas (como los que requieren servicios SaaS) para mejorar la velocidad de inicio de los nodos de solo lectura.

  • Optimiza las conexiones de sincronización GDN, reduce el consumo de CPU de los hilos de sincronización y mejora la velocidad de sincronización de registros Redo desde el clúster para clústeres secundarios de especificaciones pequeñas (es decir, menos de 8 núcleos).

  • Optimiza la estrategia AutoDop en los parámetros de control del grado de paralelismo para evitar que afecte el uso de PARALLEL HINT y force_parallel_mode.

2021-04-23

Correcciones de bugs

  • Corrige un problema donde se usaba un índice incorrecto en consultas RANGE de rango amplio debido a estadísticas inexactas de records_in_range.

  • Corrige un fallo en el nodo Standby causado por un buffer pool demasiado pequeño durante una restauración completa de datos a un punto en el tiempo.

  • Corrige un problema de consumo excesivo de memoria por parte de los metadatos internos en X-Engine.

  • Corrige dos problemas de DDL de ACL provenientes de MySQL oficial para evitar la indisponibilidad del clúster causada por bloqueos mutuos en operaciones DDL de ACL.

  • Corrige un problema donde se devolvía un conjunto de resultados incorrecto cuando una consulta paralela incluía la palabra clave SQL_BUFFER_RESULT y usaba una función de agregación sin GROUP BY.

8.0.1.1.13.2

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

Corrige un posible fallo de descifrado causado por la pérdida de información de cifrado en tablas cifradas con TDE durante un cambio entre nodo primario y secundario.

2021-04-19

8.0.1.1.13.1

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

Corrige una ralentización en consultas paralelas causada por la incapacidad de enviar las condiciones de filtro constantes del algoritmo Block Nested-Loop Join (BNL) a una sola tabla.

2021-04-08

8.0.1.1.13

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Los nodos de solo lectura ahora admiten el parámetro polar_use_statement_mdl_on_replica para evitar que las transacciones en dichos nodos (con nivel de aislamiento RC) bloqueen las operaciones DDL en el nodo primario. Además, cuando una transacción de lectura en un nodo de solo lectura es concurrente con una operación DDL en el nodo primario, la transacción de lectura verá definiciones de tabla distintas. Por ejemplo, si ocurre una operación ADD COLUMN en el nodo primario entre dos instrucciones de una transacción de lectura en un nodo de solo lectura, la segunda instrucción leerá más columnas que la primera.

  • Elimina las condiciones de igualdad innecesarias de la ruta de búsqueda por igualdad de índice. Esto facilita la ejecución de Limit offset pushdown en escenarios ORDER BY LIMIT.

  • Agrega el comando dbms_stats.gather_stats(timeout, workers), que permite actualizar histogramas obsoletos mediante programación de eventos o ejecución manual.

  • mysql.slow_log ahora permite consultar los campos log_version, log_id, origin_start_time y rds_ext.

2021-03-30

Correcciones de bugs

  • Corrige un problema donde no se podía finalizar una consulta al ejecutar comandos como CHECK TABLE, COUNT(*) o DDL en una tabla X-Engine.

  • Cambia KICKOUT a palabra clave no reservada.

  • Corrige un problema donde la consulta paralela no se aprovechaba por completo en ciertas situaciones. Esto ocurría porque el número estimado de filas escaneadas durante la generación del plan de consulta era menor que el número real.

8.0.1.1.12.2

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

  • Corrige un problema de indisponibilidad del clúster causado por la creación o eliminación de una tabla temporal dentro de un procedimiento almacenado cuando la variable de sistema session_track_temporary_tables estaba habilitada.

  • Incorpora un parche de MySQL 8.0.14 oficial para resolver un problema donde la instrucción CREATE USER se bloqueaba por no poder adquirir un bloqueo de metadatos (MDL) en las tablas de sistema de la base de datos MySQL.

2021-03-12

8.0.1.1.12.1

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

Optimiza el rendimiento de escritura de PolarDB X-Engine al importar datos de forma continua en escenarios de múltiples tablas.

2021-03-02

Correcciones de bugs

Corrige una posible inconsistencia en el estado del bloqueo de metadatos (MDL) entre los hilos Leader y Worker de una consulta paralela. Este error se debía a la falta de protección con mutex para el hilo Leader.

8.0.1.1.12

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • La política de control del grado de paralelismo agrega el parámetro auto_dop_low_degree_cost para configurar la estrategia de selección de paralelismo en las consultas paralelas. Para obtener más información, consulte Parallel resource control policy configuration.

  • Agrega compatibilidad para recuperar rápidamente tablas de la papelera de reciclaje mediante el comando restore_table. Para obtener más información, consulte Table recycle bin.

  • Permite obtener Binlog desde nodos de solo lectura. Para obtener más información, consulte Remotely obtain and parse Binlog logs of PolarDB for MySQL.

  • Permite imprimir información clave como in_memory en opt trace para facilitar la identificación de la causa cuando ocurre un problema en el plan de ejecución.

2021-02-20

Correcciones de bugs

  • Incorpora un parche de Port Percona para resolver la detección lenta de conflictos de bloqueo de metadatos en ACL CACHE durante escenarios de alta concurrencia.

  • Agrega el parámetro preferred_ordering_index a la variable de sistema optimizer_switch. Esto corrige un problema donde no se seleccionaba el plan óptimo en ciertos escenarios (como consultas ORDER BY o GROUP BY con cláusula LIMIT) debido al uso de un índice ordenado.

  • Corrige un resultado incorrecto de SHOW PROCESSLIST en algunos escenarios.

  • Corrige el acceso lento a tablas de sistema después de actualizar una versión secundaria desde versiones anteriores a la 8.0.1.1.10. El problema se debía a que no se actualizaba la definición de la tabla de sistema information_schame.KEY_COLUMN_USAGE.

8.0.1.1.11

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Permite configurar la estrategia de paralelismo en las consultas paralelas mediante el parámetro parallel_degree_policy. Para obtener más información, consulte Parallel resource control policy configuration.

  • Permite limitar la longitud de las instrucciones reconocibles al establecer el valor del parámetro max_digest_length con una instrucción SET GLOBAL.

    Nota

    Después de modificar el valor del parámetro max_digest_length, el cliente debe volver a conectarse al clúster para que el nuevo valor surta efecto.

  • El valor predeterminado del parámetro innodb_adaptive_hash_index cambió de ON a OFF.

2021-01-29

Correcciones de bugs

  • Corrige un problema de permisos inconsistentes entre el nodo primario y los nodos de solo lectura.

  • Corrige un problema donde un nodo de solo lectura no podía conectarse al nodo primario después de un cambio entre nodo primario y secundario.

  • Corrige una lógica de procesamiento incorrecta en SPM cuando un plan de ejecución específico deja de ser válido.

8.0.1.1.10

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Agrega compatibilidad con la ordenación implícita de Group By, de manera consistente con su uso en PolarDB for MySQL 5.7.

  • Agrega una función para deshabilitar la consulta paralela cuando existe un campo Blob.

  • Agrega una función para actualizar automáticamente la información de la caché de control de concurrencia a nivel de instrucción en los nodos de solo lectura.

  • Agrega la función de optimización de filas calientes. Para obtener más información, consulte Hotspot row optimization.

  • Agrega compatibilidad con la optimización de replicación física DDL. Para obtener más información, consulte DDL physical replication optimization.

  • Ahora se admite la replicación asíncrona de bloqueos de metadatos. Para obtener más información, consulte async metadata lock replication.

  • Agrega una función de recorrido inverso rápido cuando se envían los cálculos a los nodos inferiores.

  • Optimiza el sistema de archivos para acelerar la apertura de tablas en escenarios de múltiples tablas.

  • Reduce el tiempo de cambio entre nodo primario y secundario en escenarios de múltiples tablas y acelera la recuperación del nuevo nodo primario.

2021-01-12

Correcciones de bugs

  • Corrige un problema de pérdida de tablas de sistema cuando un nodo de solo lectura se promovía a nodo primario.

  • Corrige un problema donde usar una consulta de rango después de habilitar la consulta paralela provocaba una sobreestimación del número de filas escaneadas.

  • Corrige un problema donde el resultado de una consulta de agregación era un entero cuando el tipo de campo era BIT.

  • Corrige un resultado incorrecto devuelto por una consulta SELECT DISTINCT después de usar un campo de enumeración.

  • Corrige un resultado anómalo en una consulta paralela que usaba una condición EXISTS.

  • Corrige un fallo de reinicio del nodo de solo lectura en algunos casos.

  • Corrige un problema de información anómala de tablas en el diccionario de datos. Este error se producía cuando una tabla relacionada con una clave externa volvía a abrir la tabla que ejecutaba el DDL mientras esta se abría durante la ejecución de un DDL en un nodo de solo lectura.

  • Corrige un fallo en consultas de índice de texto completo causado por una marca de reinicio de nodo configurada incorrectamente después de un cambio entre nodo primario y secundario.

  • Corrige un problema donde el hilo de aplicación de registros en un nodo de solo lectura quedaba bloqueado por un bloqueo de metadatos (MDL).

  • Corrige un problema donde un nuevo nodo primario quedaba no disponible después de un cambio entre nodo primario y secundario debido a la reutilización de memoria liberada.

  • Corrige un problema donde todos los nodos quedaban no disponibles debido a un error en los datos de polar.info.

  • Corrige un problema de columna de incremento automático anómala en una tabla particionada.

  • Corrige un error de datos causado por la sobrescritura de un registro Redo en el nodo primario.

  • Corrige un problema donde el nodo primario quedaba no disponible mientras esperaba un bloqueo de metadatos (MDL).

  • Corrige varios problemas relacionados con el uso de cifrado de datos transparente (TDE).

  • Corrige un problema de indisponibilidad del clúster al ejecutar Lock Table con la función de papelera de reciclaje de tablas habilitada.

  • Corrige un bloqueo mutuo en el nodo primario al ejecutar una instrucción DDL.

  • Corrige un problema donde el pool de hilos y el control de conexiones no podían funcionar de manera simultánea.

2020

8.0.1.1.9

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

Elimina SPM y PLAN como palabras clave para evitar problemas donde no se podían operar tablas cuyos nombres contenían estas palabras.

2020-12-18

8.0.1.1.8

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • El administrador de planes de ejecución agrega un modo de múltiples planes.

  • Agrega la variable de sistema rds_ap_threshold para bloquear solicitudes donde el optimizador estima demasiados registros escaneados.

  • Mejora la eficiencia del vaciado de páginas sucias en el nodo primario.

  • Agrega un mecanismo de escritura multishard para Redo.

2020-12-09

Correcciones de bugs

  • Corrige un problema de puntero nulo con la clave del bloqueo de metadatos (MDL) durante la ejecución de consultas paralelas.

  • Corrige un fallo de consulta al crear una caché de hilos paralelos.

  • Corrige un resultado anómalo de Multi-Range Read (MRR) en consultas paralelas.

8.0.1.1.7

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Mejora la eficiencia del escaneo paralelo de tablas impulsadas en escenarios de consultas JOIN.

  • Permite limpiar archivos Binlog residuales incluso cuando Binlog está deshabilitado.

  • Agrega un mecanismo de comprobación y reconexión automática para la replicación física desconectada del nodo Slave, con el fin de evitar desconexiones prolongadas de dicha replicación.

  • Mejora la eficiencia del cambio entre el nodo primario y los nodos de solo lectura.

  • Admite el inicio rápido de clústeres con muchas tablas mediante un escaneo ágil de los archivos de datos de las tablas.

2020-11-16

Correcciones de bugs

  • Corrige un fallo del clúster al obtener el tipo de trx->wait_lock.

  • Corrige un problema donde se limitaba el número de hilos AIO cuando se habilitaba Simulated AIO de múltiples colas.

  • Corrige un problema donde no se podía finalizar directamente una consulta si la consulta inicial fallaba al consultar un índice.

  • Corrige un problema donde la Next Page del cursor actual apuntaba a una Page inexistente durante una Split Merge Operation (SMO) en un nodo Slave.

  • Corrige un problema donde un nodo de solo lectura leía información de registros que el nodo primario ya había sobrescrito.

  • Corrige un fallo al limpiar archivos Redo causado por un intervalo de marcas de tiempo excesivamente grande en el registro Redo.

  • Corrige un problema donde no se borraba la información de la caché de tablas en la caché correspondiente al liberar un bloqueo de metadatos (MDL).

8.0.1.1.6

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Mejora la compatibilidad entre SPM (administrador de planes SQL) y la consulta paralela.

  • Mejora la eficiencia de merge sort en consultas paralelas.

  • Admite el envío de cálculos a nodos inferiores para operaciones de eliminación.

  • Admite la función Commit Timestamp (CTS) de PolarDB.

2020-09-21

Correcciones de bugs

  • Corrige una descripción incorrecta de pq_optimize_switch.

  • Corrige un problema donde una subconsulta no se podía ejecutar de manera estable.

8.0.1.1.5

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Especifica si el nodo primario ejecuta inmediatamente la política de checkpoint al establecer una relación de replicación con un nodo de solo lectura.

  • Admite consultas de rango simples y el envío de cálculos a nodos inferiores.

  • PFS (Polar file system) agrega la función pfs_remount para evitar la imposibilidad de montar un archivo PFS cuando el archivo no se ha cerrado.

  • Resuelve un cuello de botella de rendimiento causado por pausas forzadas del hilo Parse en nodos de solo lectura, lo que mejora la eficiencia de la sincronización de datos durante la replicación física.

  • Optimiza el rendimiento de Early Lock Release en escenarios de múltiples conexiones, lo que mejora el rendimiento del clúster hasta 10 veces en dichos escenarios.

2020-08-19

Correcciones de bugs

  • Corrige un problema de indisponibilidad en un nodo de solo lectura después de que fallara su conexión con el nodo primario.

  • Corrige un problema de indisponibilidad en un nodo de solo lectura después de un cambio entre nodo primario y secundario. Este error ocurría tras usar un índice de texto completo y ejecutar una instrucción de consulta DDL.

  • Corrige un problema donde no se podía ejecutar purge binlog después de ejecutar el comando UNDO TRUNCATE.

  • Corrige un problema de estadísticas inconsistentes entre los nodos de solo lectura y el nodo primario.

8.0.1.1.4

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Admite DDL paralelo para mejorar la eficiencia de ejecución de DDL.

  • Admite el ajuste dinámico de la longitud de múltiples colas en Simulated AIO.

  • Admite la consistencia de la caché de Full Text Search (FTS).

  • La cláusula WHERE admite subconsultas que contienen funciones de agregación. Si la subconsulta admite escaneo basado en índices, también puede admitir ejecución paralela.

  • Las tablas temporales admiten comprobaciones de modo de bloqueo igual que las tablas estándar.

2020-07-04

Correcciones de bugs

  • Corrige un problema de indisponibilidad del clúster causado por la replicación de algunas instrucciones DDL cuando el nodo primario se degradaba a nodo secundario.

  • Corrige un problema de degradación de rendimiento causado por habilitar el pool de hilos.

  • Corrige un bloqueo mutuo causado por purge binlog.

  • Corrige varios problemas de fuga de memoria.

  • Corrige varios problemas que ocurrían en escenarios de alta disponibilidad.

8.0.1.1.3

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Mejora la seguridad (por ejemplo, la gestión de contraseñas).

  • Mejora el rendimiento de Parallel Query en los siguientes escenarios:

    • Mejora el rendimiento de consultas paralelas en escenarios GROUP BY, UNION y SELECT COUNT(*) FROM <table>.

    • Escenarios donde el plan de ejecución usa una tabla temporal InnoDB compartida en una subconsulta paralela.

    • Escenarios donde el plan usa VIEW/DERIVED TEMP TABLE.

    • La consulta paralela admite escenarios que definen tablas temporales, pero con las siguientes limitaciones:

      • No admite SELECT COUNT(*) en una tabla temporal sin condición.

      • No admite paralelismo en una tabla temporal de Memory Engine.

  • Admite la nueva versión del formato de registro de auditoría, que agrega información VIP.

  • Admite el control de la proporción de espacio libre en páginas de índice para reducir la probabilidad de SMO y contención de latch, lo que mejora el rendimiento de escritura.

  • Admite Simulated AIO de múltiples colas para mejorar el rendimiento de vaciado y escritura.

  • Permite no registrar el contenido del buffer pool en los archivos core para reducir su tamaño y evitar afectar los servicios en línea.

2020-05-29

Correcciones de bugs

  • Corrige un problema donde el motor de almacenamiento TempTable reportaba incorrectamente un error de falta de memoria en lugar de recurrir al almacenamiento en disco cuando se alcanzaba el límite máximo de memoria de TempTable.

  • Corrige un problema de indisponibilidad del clúster al usar ORDER BY en una búsqueda de texto completo de InnoDB con un parámetro de tamaño de búfer de ordenación pequeño.

  • Corrige un problema donde no se encontraba el Field correcto cuando una tabla temporal tenía columnas con el mismo nombre.

  • Corrige un problema donde no se podía finalizar una consulta paralela que usaba la función MAX/MIN con GROUP BY y un loose scan.

  • Corrige varios problemas de failover.

  • Corrige varios problemas de consultas paralelas.

  • Corrige un problema donde usar el comando SHOW BINARY LOGS podía bloquear las confirmaciones de transacciones.

8.0.1.1.2

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Admite un método de optimización de ordenamiento basado en prefijos de cadena. Primero se ordena con el prefijo y, si los prefijos coinciden, se utiliza la longitud completa de la cadena. Al ordenar columnas de tipos de caracteres largos, puede acelerar la comparación y reducir el tiempo de ordenamiento si especifica la longitud máxima de prefijo diferente de los valores de la columna.

  • Se añadió compatibilidad con consultas paralelas en los siguientes escenarios:

    • Paralelismo para el modelo de estimación Range Cost.

    • Paralelismo para tablas Temporary Table.

    • Paralelismo bajo las estrategias Semijoin materialization Lookup y Scan.

  • Se incorporaron tres tipos de rastreadores de estado de sesión que el enrutamiento inteligente de PolarDB utiliza para admitir la función de conexiones persistentes. Una vez habilitado, el rastreador registra los cambios en las variables de usuario de una sesión, la creación y eliminación de tablas temporales, y las operaciones prepare y deallocation en instrucciones SQL.

  • Se optimizó el rendimiento de Drop AHI durante un proceso DDL para reducir su impacto en el rendimiento del clúster.

  • Se añadió la papelera de reciclaje de tablas para evitar la pérdida de datos por eliminaciones accidentales.

  • Se mejoró el rendimiento al truncar un tablespace temporal de buffer pool grande. Esto reduce el impacto de las operaciones con tablas temporales en el rendimiento del clúster.

2020-04-09

Correcciones de bugs

  • Se corrigió un problema con ROLLUP cuando había una función de agregación dentro de una función IF.

  • Se solucionó un error con los tipos Blob durante el proceso de ordenamiento.

  • Se resolvió un problema específico con instrucciones SQL que contenían una función de agregación en Prepare dentro de un entorno paralelo.

  • Se corrigieron varios problemas de consultas paralelas.

  • Se solucionó un error que permitía borrar demasiados registros Redo.

  • Se corrigieron problemas relacionados con los registros Redo en nodos RO.

8.0.1.1.1

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Ahora se admite el paralelismo en escenarios donde una subconsulta contiene ROLLUP.

  • Se añadió la función de control de concurrencia de instrucciones.

  • Se incorporó el Hint POLARDB_INDEX.

  • Se optimizó la latencia de sincronización entre los nodos primarios y de solo lectura.

  • Es compatible con Thread Pool.

  • Se añadió compatibilidad con el plugin keyring_rds de TDE.

  • Admite Global Database Network (GDN).

  • Se mejoró el sistema de transacciones sin bloqueos para optimizar el rendimiento de lectura y escritura.

2020-03-28

Correcciones de bugs

  • Se corrigieron varios problemas de consultas paralelas.

  • Se solucionó un error que provocaba que las estadísticas fueran 0 durante un proceso ONLINE DDL.

  • Se optimizó el sistema de archivos en modo usuario para acelerar el inicio del clúster.

  • Se corrigió un posible error de indisponibilidad del clúster cuando innodb_flush_method se establecía en all_o_direct.

  • Se resolvió un posible error de indisponibilidad del clúster al liberar bloqueos durante la confirmación de una transacción.

  • Se corrigió un problema donde el truncamiento del registro lento podía bloquear las solicitudes de los usuarios.

  • Se solucionó un posible error de indisponibilidad del clúster relacionado con páginas comprimidas en un nodo RO.

  • Se corrigió un error donde el pool de hilos podía desconectar incorrectamente una conexión kill replication.

8.0.1.1.0

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Se mejoró la capacidad de consulta paralela para admitir el cálculo paralelo de la función de análisis empresarial ROLLUP.

  • Se añadieron capacidades al modelo de estimación del optimizador, como una mejor selectividad en el filtrado de condiciones y un modelo de estimación de costos para consultas paralelas. Con esto, el SQL ejecutado elige de forma más precisa un plan paralelo o serial según la Selectivity.

  • Se implementó la gestión unificada de los worker threads paralelos asignados en modo FIFO. Así se evita que múltiples consultas paralelas agoten los recursos del sistema.

2020-02-05

Correcciones de bugs

  • Se corrigió una serie de problemas de memoria en las consultas paralelas.

  • Se resolvieron varios errores de inestabilidad en las consultas paralelas.

8.0.1.0.6

Categoría

Descripción

Fecha de lanzamiento

Correcciones de bugs

  • Se corrigió un error donde el archivo Binlog Index no se cerraba cuando el nodo primario pasaba a ser secundario.

  • Se solucionó un problema de indisponibilidad del clúster que ocurría cuando un nodo RO accedía a una página Undo ya borrada.

  • Se corrigió un error donde un hilo en segundo plano accedía a una página de tablespace inexistente durante un cambio de rol entre nodo primario y secundario en un nodo RO.

  • Se resolvió un problema de indisponibilidad del clúster causado por escrituras en el registro Redo después de que el hilo de registro ya hubiera finalizado durante el apagado del clúster.

2020-01-01

2019

8.0.1.0.5

Categoría

Descripción

Fecha de lanzamiento

Nuevas funciones y optimizaciones de rendimiento

  • Optimizer trace ahora incluye información relacionada con las consultas paralelas. Por ejemplo, puede usar esta herramienta para analizar por qué se utilizó o no el paralelismo.

  • Se añadieron Hints para consultas paralelas. Estos permiten habilitar explícitamente el paralelismo y especificar su grado mediante SQL Hints.

  • Se implementó el escaneo paralelo para INSERT..SELECT bajo READ COMMITTED. Puede usar la instrucción INSERT..SELECT para agregar datos importados a otra tabla.

2019-12-03

Correcciones de bugs

  • Se corrigieron varios problemas de consultas paralelas.

  • Se solucionó un error de indisponibilidad del nodo que ocurría cuando un nodo secundario se promovía a primario durante un cambio de rol.

  • Se corrigió un fallo provocado por el uso de ciertas instrucciones DDL durante un cambio de rol entre nodo primario y secundario.

  • Se resolvió el error "too many connection error" causado por limitaciones de bloqueo.