¡La versión TiDB v7.4.0 está en línea! ¡Mira si la función que deseas está en línea!

Autor: Primo Billmay Fuente original: https://tidb.net/blog/d73bda0f

Notas de la versión de TiDB 7.4.0

Fecha de lanzamiento: 12 de octubre de 2023

Versión TiDB: 7.4.0

Enlace de prueba: Experiencia rápida  |  Descargar paquete sin conexión

En la versión 7.4.0, obtienes las siguientes características clave:

Clasificación Función describir
Escalabilidad y rendimiento Rendimiento mejorado  ADD INDEX al agregar múltiples índices en una sola declaración (función experimental) A partir de la versión 6.2.0, puede  ADD INDEX agregar varios índices a una tabla en una sola declaración; sin embargo, el rendimiento es  ADD INDEX el mismo que si se ejecutaran varias declaraciones. Después de la optimización en v7.4.0, el rendimiento de agregar múltiples índices en una declaración SQL ha mejorado enormemente.
Estabilidad y alta disponibilidad Presentamos capacidades de clasificación global para mejorar el rendimiento y la estabilidad IMPORT INTOde las tareas .ADD INDEX Antes de v7.4.0, cuando se usaba el marco de ejecución paralela distribuida para realizar   tareas como o, solo algunos datos se podían ordenar parcialmente ADD INDEX . IMPORT INTOEsto hace que TiKV realice acciones adicionales y el nodo TiDB también necesita asignar espacio en el disco local para ordenar los datos antes de importarlos a TiKV. Con la introducción de la función de clasificación global en v7.4.0, los datos se pueden almacenar temporalmente en un almacenamiento externo (como S3) para una clasificación global y luego importarlos a TiKV. Esta mejora reduce el consumo adicional de recursos de TiKV y mejora significativamente   el rendimiento y la estabilidad de operaciones como y ADD INDEX . IMPORT INTO
La gestión y el control de recursos admiten la gestión automática de tareas en segundo plano (función experimental) A partir de la versión 7.1.0, la gestión y el control de recursos se han convertido en una característica formal que ayuda a aliviar la interferencia de acceso a recursos y almacenamiento entre diferentes cargas de trabajo. TiDB v7.4.0 aplica este control de recursos a tareas en segundo plano. La gestión de recursos puede identificar y gestionar tareas en segundo plano, como la recopilación automática de estadísticas, la copia de seguridad y la recuperación, la importación de datos por lotes de TiDB Lightening y DDL en línea. En el futuro, todas las tareas en segundo plano se incluirán en la gestión y el control de recursos.
TiFlash admite la separación de recursos informáticos y de almacenamiento y el almacenamiento compartido  (GA) S3 La arquitectura de separación informática y de almacenamiento TiFlash y el almacenamiento compartido S3 se han convertido en funciones oficiales:
SQL TiDB admite funciones completas de gestión de tipos de particiones Antes de v7.4.0, la tabla de particiones Rango/Lista admitía operaciones de administración de particiones, incluidas  ,,,, etc. TRUNCATE,  y la tabla de particiones Hash/Clave admitía operaciones de administración de particiones, incluidas  EXCHANGEy  ,   etc.ADDDROPREORGANIZEADDCOALESCE
Compatibilidad con MySQL 8.0: soporte de intercalación utf8mb4_0900_ai_ci Un cambio notable en MySQL 8.0 es el cambio del juego de caracteres predeterminado a utf8mb4 y su intercalación predeterminada  utf8mb4_0900_ai_ci. TiDB v7.4.0 mejora la compatibilidad con MySQL 8.0. Ahora puede migrar o copiar más fácilmente bases de datos creadas en MySQL 8.0 con la intercalación predeterminada a TiDB.
Gestión y observabilidad de bases de datos Seleccione nodos TiDB aplicables para ejecutar  ADD INDEX o  IMPORT INTO sentencias SQL en paralelo (función experimental) ADD INDEX Puede optar por ejecutar  sentencias SQL en nodos TiDB existentes o en nodos TiDB nuevos  IMPORT INTO . Este método puede lograr el aislamiento de recursos de otros nodos TiDB, garantizar el mejor rendimiento al ejecutar las declaraciones anteriores y evitar el impacto en el rendimiento de las empresas existentes.

Detalles de las funciones

Escalabilidad

  • ADD INDEX Admite la configuración del alcance del servicio de los nodos TiDB, que se utiliza para seleccionar los nodos TiDB aplicables para ejecutar tareas OR  paralelas  IMPORT INTO (función experimental) #46453  @ ywqzzy

  • En clústeres que consumen muchos recursos, la ejecución paralela  ADD INDEX o  IMPORT INTO las tareas pueden ocupar una gran cantidad de recursos del nodo TiDB, lo que resulta en un rendimiento reducido del clúster. A partir de v7.4.0, puede  tidb_service_scope controlar  el alcance del servicio de cada nodo TiDB en el marco de distribución de tareas backend de TiDB a través de variables. Puede seleccionar varios nodos de los nodos TiDB existentes o establecer el alcance del servicio para nuevos nodos TiDB. ADD INDEX Todas las tareas y  ejecuciones paralelas  IMPORT INTO solo se ejecutarán en estos nodos para evitar el impacto en el rendimiento de las empresas existentes.

  • Para obtener más información, consulte la documentación del usuario .

  • Mejorar el motor de almacenamiento Partitioned Raft KV (función experimental) #11515  #12842  @ ocupadajay  @ tonyxuqqi  @ tabokie  @ bufferflies  @ 5kbpers  @ SpadeA-Tang  @ nolouch

  • TiDB v6.6.0 introduce el motor de almacenamiento Partitioned Raft KV como una característica experimental. Este motor utiliza múltiples instancias de RocksDB para almacenar datos de la región TiKV. Los datos de cada región se almacenan de forma independiente en una instancia de RocksDB separada.

  • En TiDB v7.4.0, el motor Partitioned Raft KV se ha mejorado aún más en términos de compatibilidad y estabilidad. A través de pruebas de datos a gran escala, se garantiza la compatibilidad del motor Partitioned Raft KV con componentes o funciones ecológicas clave como DM, Dumpling, TiDB Lightning, TiCDC, BR y PITR. Al mismo tiempo, bajo cargas de trabajo mixtas de lectura y escritura, el motor Partitioned Raft KV proporciona un rendimiento más estable, especialmente adecuado para escenarios donde hay más escritura y menos lectura. Además, cada nodo TiKV admite CPU de 8 núcleos y se puede combinar con 8 TB de almacenamiento de datos y 64 GB de memoria.

  • Para obtener más información, consulte la documentación del usuario .

  • La arquitectura de separación de cálculo y almacenamiento TiFlash se convierte en una característica formal (GA)  #6882  @ JaySon-Huang  @ JinheLin  @ briseewish  @ lidezhu  @ CalvinNeo  @ Lloyd-Pottiger

  • En v7.0.0, TiFlash introdujo la arquitectura de separación de cálculo y almacenamiento como una característica experimental. Después de una serie de mejoras, TiFlash admite oficialmente la arquitectura de separación de cálculo y almacenamiento a partir de la versión 7.4.0.

  • Bajo la arquitectura de separación de almacenamiento e informática, los nodos TiFlash se dividen en dos tipos: Compute Node (nodo de computación) y Write Node (nodo de escritura), y utilizan almacenamiento de objetos compatible con la API S3. Ambos tipos de nodos se pueden expandir y reducir de forma independiente, y sus capacidades informáticas o de almacenamiento de datos se pueden ajustar de forma independiente. Bajo la arquitectura de separación de computación y almacenamiento, TiFlash se usa de la misma manera que la arquitectura integrada de computación y almacenamiento, como por ejemplo creando copias de TiFlash, consultas, especificando sugerencias de optimizador, etc.

  • Cabe señalar que la arquitectura de separación de computación y almacenamiento de TiFlash y la arquitectura integrada de computación y almacenamiento no se pueden mezclar ni convertir entre sí. Es necesario realizar las configuraciones correspondientes al implementar TiFlash para especificar el uso de una de las arquitecturas.

  • Para obtener más información, consulte la documentación del usuario .

actuación

  • Admite inserción de operadores JSON  MEMBER OF en TiKV  #46307  @ wshwsh12

    • value MEMBER OF(json_array)
  • Para obtener más información, consulte la documentación del usuario .

  • Admite funciones de ventana desplegables que contienen cualquier tipo de definición de cuadro en TiFlash  #7376  @ xzhangxian1008

  • En versiones anteriores a v7.4.0, TiFlash no admite   funciones de ventana que contengan PRECEDING o  y todas las funciones de ventana que contengan dichas definiciones de marco no se pueden transferir a TiFlash. FOLLOWINGA partir de v7.4.0, TiFlash admite las definiciones de marco de todas las funciones de ventana. Esta función se habilita automáticamente. Cuando se cumplan los requisitos, la función de ventana que contiene la definición del marco se enviará automáticamente a TiFlash para su ejecución.

  •  Introduzca capacidades de clasificación global basadas en almacenamiento en la nube para mejorar el rendimiento y la estabilidad de las tareas  de ejecución  ADD INDEX paralela  #45719  @ wjhuang2016IMPORT INTO

  • Antes de v7.4.0, cuando los usuarios ejecutaban tareas del marco de ejecución paralela distribuida  ADD INDEX ,  IMPORT INTO el nodo TiDB necesitaba preparar un disco local más grande para ordenar los pares KV de índice codificado y los pares KV de datos de tabla. Dado que no se puede ordenar desde una perspectiva global, puede haber superposiciones en los datos importados entre los nodos TiDB y dentro de los nodos. Esto hará que TiKV requiera compactación (compactación) de datos frecuente al importar estos pares de KV a TiKV, lo que reducirá  ADD INDEX el rendimiento  IMPORT INTO y la estabilidad.

  • Después de que v7.4.0 introduce la función de clasificación global, los datos codificados ya no se escriben localmente para su clasificación, sino que se escriben en el almacenamiento en la nube y se clasifican globalmente en el almacenamiento en la nube. Luego, TiDB importa los datos de índice y de tabla ordenados globalmente a TiKV en paralelo, mejorando así el rendimiento y la estabilidad.

  • Para obtener más información, consulte la documentación del usuario .

  • Optimice el cambio de esquema múltiple paralelo y mejore el rendimiento al agregar múltiples índices a una declaración SQL  #41602  @ tangenta  @ Defined2014

  • Antes de v7.4.0, cuando los usuarios usaban Parallel Multi Schema Change para enviar múltiples operaciones en una declaración SQL  ADD INDEX , el rendimiento era el mismo que usar múltiples declaraciones SQL independientes para realizar las  ADD INDEX operaciones. Después de la optimización en v7.4.0, el rendimiento de agregar múltiples índices en una declaración SQL ha mejorado enormemente.

  • Admite planes de ejecución de almacenamiento en caché de declaraciones que no son de preparación (GA)  #36598  @ qw4990

  • TiDB v7.0.0 introduce el almacenamiento en caché del plan de ejecución para declaraciones que no son de preparación como una característica experimental para mejorar las capacidades de procesamiento concurrente en escenarios de transacciones en línea. En v7.4.0, esta característica es oficialmente GA. La tecnología de almacenamiento en caché del plan de ejecución se aplicará a una gama más amplia de escenarios para mejorar las capacidades de procesamiento concurrente de TiDB.

  • Habilitar el almacenamiento en caché del plan de ejecución de sentencias que no sean Preparar puede causar memoria adicional y sobrecarga de CPU, y puede no ser adecuado para todos los escenarios. A partir de v7.4.0, el almacenamiento en caché del plan de ejecución para declaraciones que no son de preparación está desactivado de forma predeterminada. Puede  tidb_enable_non_prepared_plan_cache controlar si desea habilitar esta función a través de variables del sistema y  tidb_session_plan_cache_size establecer el tamaño de la caché.

  • Además, esta función no admite declaraciones DML de forma predeterminada y tiene ciertas restricciones en el modo SQL. Para obtener más detalles, consulte restricciones de uso .

  • Para obtener más información, consulte la documentación del usuario .

estabilidad

  • TiFlash admite la ubicación de datos a nivel de consulta  #7738  @ windtalker

  • A partir de v7.0.0, TiFlash admite   la función de controlar la ubicación de los datos de estos tres operadores, y, para evitar el problema de la finalización de la consulta o incluso la caída del sistema cuando la cantidad de datos excede el tamaño total de la GROUP BYmemoria ORDER BY. JOINSin embargo, es problemático controlar la ubicación de cada operador individualmente y es imposible controlar eficazmente los recursos generales.

  • En v7.4.0, TiFlash introdujo la función de consultar datos de nivel en el disco. Al establecer el límite superior de la memoria utilizada por una única consulta en un único nodo TiFlash  tiflash_mem_quota_query_per_node y el umbral de memoria que activa la descarga de datos  tiflash_query_spill_ratio, puede controlar fácilmente el uso de la memoria de una única consulta y administrar mejor los recursos de memoria TiFlash.

  • Para obtener más información, consulte la documentación del usuario .

  • Soporte para personalizar el tiempo de espera de lectura de TiKV  #45380  @ crazycs520

  • En circunstancias normales, TiKV procesa las solicitudes muy rápidamente, en solo unos pocos milisegundos. Sin embargo, cuando un nodo TiKV experimenta problemas de E/S de disco o latencia de red, el tiempo de procesamiento de solicitudes puede aumentar significativamente. En versiones anteriores a la v7.4.0, el límite de tiempo de espera para las solicitudes de TiKV es fijo y no se puede ajustar. Por lo tanto, cuando ocurre un problema en un nodo TiKV, TiDB debe esperar una respuesta de tiempo de espera fijo, lo que hace que el rendimiento de la consulta de la aplicación se vea significativamente afectado durante el período de fluctuación.

  • TiDB introdujo una nueva variable de sistema en v7.4.0  tikv_client_read_timeout. Puede personalizar el tiempo de espera de la solicitud de lectura RPC enviada por TiDB a TiKV en la declaración de consulta. Esto significa que cuando un nodo TiKV retrasa una solicitud debido a problemas de disco o de red, TiDB puede agotar el tiempo de espera más rápido y reenviar la solicitud a otros nodos TiKV, reduciendo así la latencia de la consulta. Si las solicitudes de todos los nodos TiKV agotan el tiempo de espera, TiDB utilizará el período de tiempo de espera predeterminado para volver a intentarlo. Además, también puede utilizar Optimizer Hint en la declaración de consulta  /*+ SET_VAR(TIKV_CLIENT_READ_TIMEOUT=N) */ para establecer el tiempo de espera para que TiDB envíe solicitudes de lectura TiKV RPC. Esta mejora permitirá a TiDB adaptarse a diversas situaciones de manera más flexible, mejorar el rendimiento de las consultas y mejorar la experiencia del usuario cuando se enfrenta a entornos de red o almacenamiento inestables.

  • Para obtener más información, consulte la documentación del usuario .

  • Admite la modificación temporal de los valores de algunas variables del sistema a través de mensajes del optimizador  #45892  @winoros

  • TiDB v7.4.0 agrega soporte para sugerencias de optimizador similares a MySQL 8.0  SET_VAR(). Al agregar Sugerencia a la declaración SQL  SET_VAR(), algunas variables del sistema se pueden modificar temporalmente durante la ejecución de la declaración para configurar el entorno para diferentes declaraciones. Por ejemplo, puede aumentar de forma proactiva el paralelismo de SQL costoso o modificar el comportamiento del optimizador mediante variables.

  • SET_VAR() Para conocer las variables del sistema que admiten modificaciones mediante Sugerencia,  consulte Variables del sistema . Se recomienda encarecidamente no utilizar esta sugerencia para modificar variables que no se admiten explícitamente, ya que esto puede provocar un comportamiento impredecible.

  • Para obtener más información, consulte la documentación del usuario .

  • TiFlash admite funciones de control y gestión de recursos  #7660  @ guo-shaoge

  • En TiDB v7.1.0, la gestión y el control de recursos se convierten en una función formal, proporcionando capacidades de gestión de recursos para TiDB y TiKV. En v7.4.0, TiFlash admite funciones de control y gestión de recursos, lo que mejora las capacidades generales de control y gestión de recursos de TiDB. La gestión y el control de recursos de TiFlash son totalmente compatibles con las funciones de control y gestión de recursos de TiDB existentes. El grupo de recursos existente controlará simultáneamente los recursos en TiDB, TiKV y TiFlash.

  • Al configurar los parámetros de TiFlash  enable_resource_control, puede controlar si desea habilitar las funciones de control y administración de recursos de TiFlash. Después de habilitarse, TiFlash realizará la programación y administración de recursos según la configuración del grupo de recursos de TiDB para garantizar la asignación y el uso razonables de los recursos generales.

  • Para obtener más información, consulte la documentación del usuario .

  • TiFlash admite el modelo de ejecución Pipeline (GA)  #6518  @ SeaRise

  • En v7.2.0, TiFlash introdujo el modelo de ejecución Pipeline como una característica experimental. Este modelo gestiona de manera uniforme todos los recursos de subprocesos y programa de manera uniforme la ejecución de todas las tareas para aprovechar al máximo los recursos de subprocesos y evitar el uso excesivo de recursos. A partir de v7.4.0, TiFlash ha mejorado las estadísticas del uso de recursos de subprocesos y el modelo de ejecución de Pipeline se ha convertido en una función formal (GA) y está habilitado de forma predeterminada. Dado que esta función es interdependiente con la función de administración de recursos TiFlash, TiDB v7.4.0 ha eliminado las variables utilizadas en versiones anteriores para controlar si se habilita el modelo de ejecución Pipeline  tidb_enable_tiflash_pipeline_model. tidb_enable_resource_control Ahora puede activar o desactivar el modelo de ejecución de Pipeline y las funciones de control y administración de recursos de TiFlash al mismo tiempo a través de los parámetros de TiFlash  .

  • Para obtener más información, consulte la documentación del usuario .

  • Se agregó la selección del modo optimizador  #46080  @ time-and-fate

  • TiDB introdujo una nueva variable de sistema en v7.4.0  tidb_opt_objectivepara controlar el método de optimización del optimizador. El valor predeterminado  moderate mantiene el comportamiento del optimizador de versiones anteriores, es decir, el optimizador utiliza las modificaciones de datos recopiladas en tiempo de ejecución para corregir las estimaciones. Si se establece en  determinate, el optimizador no considera las correcciones de tiempo de ejecución y solo genera planes de ejecución basados ​​en estadísticas.

  • Para negocios OLTP estables a largo plazo, o cuando los usuarios tienen mucha confianza en el plan de ejecución existente, se recomienda cambiar al  determinate modo después de la prueba para reducir la posibilidad de saltos en el plan de ejecución.

  • Para obtener más información, consulte la documentación del usuario .

  • La gestión y el control de recursos admiten la gestión automática de tareas en segundo plano (función experimental) #44517  @ glorv

    Las tareas en segundo plano se refieren a tareas que tienen baja prioridad pero que requieren una gran cantidad de recursos, como la copia de seguridad de datos y la recopilación automática de estadísticas. Estas tareas generalmente se activan de manera regular o irregular y consumen una gran cantidad de recursos durante la ejecución, lo que afecta el desempeño de las tareas en línea de alta prioridad. En TiDB v7.4.0, la gestión y el control de recursos introducen la gestión automática de tareas en segundo plano. Esta función ayuda a reducir el impacto en el rendimiento de las tareas de baja prioridad en los servicios en línea, logra una asignación razonable de recursos y mejora en gran medida la estabilidad del clúster.

    TiDB actualmente admite los siguientes tipos de tareas en segundo plano:

  • De forma predeterminada, el tipo de tarea marcada como tarea en segundo plano está vacía. En este momento, la función de administración de la tarea en segundo plano está desactivada y su comportamiento sigue siendo el mismo que las versiones anteriores a TiDB v7.4.0. Debe modificar manualmente  default el tipo de tarea en segundo plano del grupo de recursos para habilitar la administración de tareas en segundo plano.

  • Para obtener más información, consulte la documentación del usuario .

  • Capacidad mejorada para bloquear estadísticas  #46351  @ hi-rustin

  • En v7.4.0, TiDB ha mejorado la capacidad de bloquear estadísticas . ANALYZE TABLEBloquear y desbloquear estadísticas ahora requiere los mismos permisos que recopilar estadísticas ( ) para garantizar una operación segura. Además, se agregó soporte para bloquear y desbloquear estadísticas de particiones específicas, lo que mejora la flexibilidad funcional. Cuando los usuarios confían en los planes de consulta y ejecución en la base de datos y no esperan cambios, se pueden utilizar estadísticas de bloqueo para mejorar la estabilidad de las estadísticas.

  • Para obtener más información, consulte la documentación del usuario .

  • Introduzca variables del sistema para controlar si se selecciona la combinación hash de la tabla  #46695  @coderplay

  • La unión hash de tablas es una nueva característica introducida en MySQL 8.0, que se utiliza principalmente para unir dos tablas y conjuntos de resultados relativamente grandes. Pero para cargas transaccionales, o algunas empresas que se ejecutan de manera estable en MySQL 5.7, seleccionar uniones hash de tablas puede representar un riesgo para el rendimiento. MySQL puede controlar la selección de combinaciones hash a nivel global o de sesión a través de conmutadores optimizadores  .optimizer_switch

  • A partir de v7.4.0, TiDB introduce variables del sistema  tidb_opt_enable_hash_join para controlar las uniones hash de tablas. Habilitado de forma predeterminada ( ON). Si está muy seguro de que la conexión hash entre las tablas seleccionadas no es necesaria en el plan de ejecución, puede modificar la variable para  OFFreducir la posibilidad de revertir el plan de ejecución y mejorar la estabilidad del sistema.

  • Para obtener más información, consulte la documentación del usuario .

funciones SQL

  • TiDB admite funciones completas de administración de tipos de particiones  # 42728  @mjonss

  • Antes de v7.4.0, el tipo de partición no se puede ajustar para tablas particionadas en TiDB. A partir de v7.4.0, TiDB admite las funciones de modificar tablas particionadas a tablas no particionadas, modificar tablas no particionadas a tablas particionadas y modificar tipos de particiones. Puede ajustar de manera flexible el tipo de partición y la cantidad de tablas según sea necesario. Por ejemplo,  ALTER TABLE t PARTITION BY ... modifique el tipo de partición mediante declaraciones.

  • Para obtener más información, consulte la documentación del usuario .

  • TiDB admite  WITH ROLLUP modificadores y  funcionesGROUPING  #  44487  @AilinKid

  • WITH ROLLUP Los modificadores y  GROUPING las funciones son funciones comúnmente utilizadas en el análisis de datos y se utilizan para resumir datos en múltiples dimensiones. A partir de v7.4.0, TiDB admite  el uso de  modificadores y  funciones en GROUP BY cláusulas   . Por ejemplo, puede   utilizar   modificadores mediante la sintaxis.WITH ROLLUPGROUPINGSELECT ... FROM ... GROUP BY ... WITH ROLLUPWITH ROLLUP

  • Para obtener más información, consulte la documentación del usuario .

Gestión de base de datos

  • Se agregó intercalación  utf8mb4_0900_ai_ci y   # utf8mb4_0900_bin 37566  @YangKeao  @zimulala @ bb7133
  • TiDB v7.4.0 mejora el soporte para migrar datos desde MySQL 8.0. Dos nuevas reglas de clasificación (intercalación)  utf8mb4_0900_ai_ci y  utf8mb4_0900_bin. Cuál  utf8mb4_0900_ai_ci es la intercalación predeterminada de MySQL 8.0.
  • Al mismo tiempo, se agrega una nueva variable de sistema que admite MySQL 8.0  default_collation_for_utf8mb4, lo que permite a los usuarios especificar el método de clasificación predeterminado para el juego de caracteres utf8mb4 para que sea compatible con escenarios de migración o replicación de datos de MySQL 5.7 o versiones anteriores.
  • Para obtener más información, consulte la documentación del usuario .

Observabilidad

  • Admite agregar ID de sesión y alias de sesión a los registros  # 46071  @lcwangchao

  • Al localizar problemas de ejecución de SQL, a menudo es necesario correlacionar el contenido de los registros de cada componente de TiDB para encontrar la causa raíz del problema. A partir de v7.4.0, TiDB escribe el ID de sesión ( CONNECTION_ID) en el contenido del registro relacionado con la sesión, incluidos registros de TiDB, registros de consultas lentas y registros de registro lentos del coprocesador en TiKV. Puede correlacionar el contenido de varios registros en función de identificadores de sesión para mejorar la eficiencia de la localización y el diagnóstico de fallos.

  • Además,  tidb_session_aliaspuede agregar identificadores personalizados a los registros anteriores configurando variables a nivel de sesión. Con esta capacidad, se puede inyectar información de identificación empresarial en el registro y el contenido del registro se puede asociar con la empresa, abriendo el vínculo entre la empresa y el registro y reduciendo la dificultad del diagnóstico.

  • TiDB Dashboard proporciona un plan de ejecución para la vista de tabla  #1589  @baurine

  • En v7.4.0,  la página de consulta lenta  y  la página de declaración SQL  del panel TiDB proporcionan planes de ejecución de vista de tabla para mejorar la experiencia de diagnóstico del usuario.

  • Para obtener más información, consulte la documentación del usuario .

migración de datos

  • Mejora  IMPORT INTO #  46704  @ D3Hunter

    A partir de v7.4.0, puede  activar la función de clasificación global (función experimental)  especificando la dirección de almacenamiento en la nube de los datos codificados en las opciones IMPORT INTO para  mejorar el rendimiento y la estabilidad.CLOUD_STORAGE_URI

    Además, en v7.4.0, IMPORT INTO se introdujeron las siguientes características:

    • Admite  Split_File opciones de configuración para dividir un único archivo CSV grande en varios archivos CSV pequeños de 256 MiB para el procesamiento paralelo y mejorar el rendimiento de la importación.
    • Admite la importación de archivos CSV y SQL comprimidos. Los formatos de compresión admitidos incluyen  .gzip, .gz,  y  ..zstd.zst.snappy
  • Para obtener más información, consulte la documentación del usuario .

  • Dumpling admite saltos de línea definidos por el usuario al exportar datos a archivos CSV  #46982  @ GMHDBJD

  • Antes de v7.4.0, cuando Dumpling exportaba datos a un archivo CSV, el carácter de nueva línea era .  "\r\n"Como resultado, algunos  "\n" sistemas posteriores que solo podían analizar caracteres de nueva línea no podían analizar el archivo CSV o tenían que convertirlo mediante una herramienta de terceros. antes de analizarlo.

  • A partir de v7.4.0, Dumpling introduce nuevos parámetros  --csv-line-terminator. Cuando exporta datos a un archivo CSV, puede pasar los saltos de línea necesarios a través de este parámetro. Este parámetro admite  "\r\n\" y  "\n", el valor predeterminado es  "\r\n", que es consistente con la versión histórica.

  • Para obtener más información, consulte la documentación del usuario .

  • TiCDC admite la sincronización de datos con Pulsar  #9413  @ yumchina  @ asddongmen

  • Pulsar es una plataforma de flujo de mensajes distribuidos nativa de la nube que puede mejorar significativamente su experiencia de flujo de datos en tiempo real. A partir de v7.4.0, TiCDC admite  canal-json la sincronización de datos de cambios con el formato Pulsar, logrando una integración perfecta con Pulsar. A través de esta función, TiCDC le permite capturar y sincronizar fácilmente datos de cambios de TiDB con Pulsar, brindando nuevas posibilidades para funciones de análisis y procesamiento de datos. Puede desarrollar sus propias aplicaciones de consumo para leer y procesar datos de cambios recién generados desde Pulsar para satisfacer necesidades comerciales específicas.

  • Para obtener más información, consulte la documentación del usuario .

  • TiCDC admite la función Claim-Check y mejora el procesamiento de mensajes grandes  #9153  @ 3AceShowHand

  • max.message.bytesAntes de v7.4.0, TiCDC no podía enviar mensajes grandes que excedieran el tamaño máximo de mensaje de Kafka ( ). A partir de v7.4.0, al configurar Changefeed en sentido descendente de Kafka, puede especificar una ubicación de almacenamiento externo para almacenar mensajes grandes que excedan el límite de Kafka. TiCDC enviará un mensaje de referencia a Kafka, que registra la dirección del mensaje grande en un almacenamiento externo. Cuando el consumidor recibe el mensaje de referencia, puede obtener el contenido del mensaje correspondiente en función de la información de la dirección de almacenamiento externo registrada en él.

  • Para obtener más información, consulte la documentación del usuario .

Cambios de compatibilidad

Aviso

La siguiente es información sobre los cambios de compatibilidad necesarios para actualizar de v7.3.0 a la versión actual (v7.4.0). Si actualiza desde la versión 7.2.0 o versiones anteriores a la versión actual, es posible que también deba considerar y revisar la información de cambios de compatibilidad mencionada en las notas de la versión intermedia.

cambio de comportamiento

  • Desde v7.4.0, TiDB ha sido compatible con las funciones principales de MySQL 8.0 y version() devolverá información de la versión 8.0.11 con .
  • Después de actualizar a TiFlash v7.4.0, no se admite la degradación local a la versión anterior. Esto se debe a que, a partir de v7.4.0, para reducir la amplificación de lectura y escritura causada por la clasificación de datos, TiFlash ha optimizado la lógica de clasificación de datos de PageStorage V3, lo que resulta en cambios en los nombres de los archivos de almacenamiento subyacentes. Para obtener más información, consulte  la ayuda de actualización de TiFlash .

variables del sistema

nombre de la variable Tipo de modificación describir
tidb_enable_tiflash_pipeline_model borrar Esta variable se utiliza para controlar si se habilita TiFlash Pipeline Model. A partir de v7.4.0, cuando la función de control y gestión de recursos TiFlash esté habilitada, el modelo Pipeline Model se habilitará automáticamente.
tidb_enable_non_prepared_plan_cache Revisar Después de más pruebas, el valor predeterminado de esta variable  ON se cambió de a  OFF, es decir, el almacenamiento en caché del plan de ejecución de declaraciones que no son Preparar está desactivado de forma predeterminada.
default_collation_for_utf8mb4 Nuevo Esta variable se utiliza para establecer la intercalación predeterminada del juego de caracteres utf8mb4. El valor predeterminado es  utf8mb4_bin.
tidb_cloud_storage_uri Nuevo Esta variable se utiliza para especificar el URI del almacenamiento en la nube utilizado en la clasificación global .
tidb_opt_enable_hash_join Nuevo Controla si el optimizador elegirá combinaciones hash de tablas. Abierto por defecto ( ON). OFF Cuando se establece en  , el optimizador evita seleccionar combinaciones hash para tablas a menos que no haya planes disponibles.
tidb_opt_objective Nuevo Esta variable se utiliza para establecer el objetivo de optimización del optimizador. moderate Manteniendo el comportamiento predeterminado de la versión anterior, el optimizador utilizará más información para intentar generar un mejor plan; determinate tenderá a ser conservador y mantendrá estable el plan de ejecución.
tidb_schema_version_cache_limit Nuevo Esta variable se utiliza para limitar cuántas versiones históricas de información de estructura de tabla puede almacenar en caché una instancia de TiDB. El valor predeterminado es  16, es decir, la información de la estructura de la tabla de 16 versiones históricas se almacena en caché de forma predeterminada.
tidb_service_scope Nuevo Esta variable es una variable a nivel de instancia que se utiliza para controlar  el alcance del servicio de cada nodo TiDB en el marco de distribución de tareas backend de TiDB . Cuando el nodo TiDB está configurado en  tidb_service_scope , background el marco de distribución de tareas de backend programará el nodo para ejecutar tareas de backend (como  ADD INDEX y  IMPORT INTO).
tidb_session_alias Nuevo Se utiliza para personalizar  session_alias los valores de las columnas en los registros relacionados con la sesión actual.
tiflash_mem_quota_query_per_node Nuevo Se utiliza para establecer el límite superior de uso de memoria para una sola consulta en un solo nodo TiFlash. Cuando se excede este límite, TiFlash informará un error y finalizará la consulta. El valor predeterminado es  0, lo que significa que no hay límite.
tiflash_query_spill_ratio Nuevo Umbral utilizado para controlar  el mecanismo de colocación a nivel de consulta TiFlash. El valor predeterminado es  0.7.
tikv_client_read_timeout Nuevo Esta variable se utiliza para establecer el tiempo de espera para que TiDB envíe solicitudes de lectura TiKV RPC en la declaración de consulta. El valor predeterminado  0significa utilizar el tiempo de espera predeterminado (normalmente 40 segundos).

Parámetros del archivo de configuración

Archivo de configuración Elementos de configuración Tipo de modificación describir
TiDB enable-stats-cache-mem-quota Revisar El valor predeterminado se ha  false cambiado a  true, es decir, el límite de memoria del caché de estadísticas de TiDB está habilitado de forma predeterminada.
TiFlash flash.compact_log_min_gap Nuevo  Cuando la diferencia entre  el avance actual de la máquina de estado de Raft  applied_index y la última ubicación del disco  es mayor que el valor actual  , TiFlash ejecutará el comando CompactLog desde TiKV y realizará la ubicación del disco de datos.applied_indexcompact_log_min_gap
TiFlash profiles.default.enable_resource_control Nuevo Controle si se habilita la función de control y administración de recursos TiFlash.
TiFlash storage.format_version Revisar El valor predeterminado se  4 modifica de  5, este formato puede fusionar archivos pequeños, reduciendo así la cantidad de archivos físicos.
Bola de masa hervida --csv-line-terminator Nuevo Controla el carácter de nueva línea de los datos exportados como archivo CSV. Admite  "\r\n" y  "\n"el valor predeterminado es  "\r\n", que es consistente con la versión histórica.
es CDC claim-check-storage-uri Nuevo Cuando se especifica   ,large-message-handle-option   se debe configurar en una dirección de servicio de almacenamiento externo válida; de lo contrario, se informará un error al crear Changefeed.claim-checkclaim-check-storage-uri
es CDC large-message-handle-compression Nuevo Controla si se habilita la función de compresión durante la codificación. El valor predeterminado está vacío, lo que significa que no está habilitado.
es CDC large-message-handle-option Revisar Este elemento de configuración agrega un valor opcional  claim-check. Cuando se establece claim-check en , el receptor TiCDC Kafka admite el envío del mensaje al servicio de almacenamiento externo cuando el tamaño del mensaje excede el límite, y también envía un mensaje que contiene la dirección del mensaje grande en el servicio de almacenamiento externo a Kafka.

Mejora

  • TiDB

    • Optimice  ANALYZE el uso de memoria y el rendimiento de las tablas de particiones  #47071  #47104  # 46804  @hawkingrei
    • Optimice el uso de la memoria y el rendimiento de la recolección de basura estadística  # 31778  @winoros
    • Optimice el pushdown cuando la combinación de índices realice operaciones de intersección  limit para mejorar el rendimiento de la consulta  #46863  @ AilinKid
    • Mejore el modelo de costos para evitar  IndexLookup seleccionar por error un escaneo completo de la tabla cuando hay muchas tareas de devolución de tablas  #45132  @ qw4990
    • Optimice las reglas de eliminación de uniones y mejore  join on unique keys el rendimiento de las consultas  #46248  @ fixdb
    • Cambie la regla de clasificación de las columnas de índice de valores múltiples  binarypara evitar fallas en la ejecución  #46717  @ YangKeao
  • TiKV

    • 改进 Resolver 的内存使用,防止 OOM #15458 @overvenus
    • 消除 Router 对象中的 LRUCache,降低内存占用,防止 OOM #15430 @Connor1996
    • 降低 TiCDC Resolver 的内存占用 #15412 @overvenus
    • 降低 RocksDB compaction 带来的内存抖动 #15324 @overvenus
    • 降低 Partitioned Raft KV 中流控模块的内存占用 #15269 @overvenus
    • 新增 PD Client 连接重试过程中的 backoff 机制。异常错误重试期间,逐步增加重试时间间隔,减小 PD 压力 #15428 @nolouch
    • 支持动态调整 RocksDB 的 background_compaction #15424 @glorv
  • PD

    • 优化 TSO 的追踪信息,方便调查 TSO 相关问题 #6856 @tiancaiamao
    • 支持复用 HTTP Client 连接,降低内存占用 #6913 @nolouch
    • 优化无法连接到备份集群时 PD 自动更新集群状态的速度 #6883 @disksing
    • 改进 resource control client 的配置获取方式,使其可以动态获取最新配置 #7043 @nolouch
  • TiFlash

    • 改进 TiFlash 写入过程的落盘策略,提升随机写入负载下的写性能 #7564 @CalvinNeo
    • 为 TiFlash 处理 Raft 同步过程添加更多观测指标 #8068 @CalvinNeo
    • 改进 TiFlash 文件格式,减少小文件数量以避免造成文件系统 inode 耗尽的问题 #7595 @hongyunyan
  • Tools

    • Backup & Restore (BR)

      • 缓解了 Region leadership 迁移导致 PITR 日志备份进度延迟变高的问题 #13638 @YuJuncen
      • 通过设置 HTTP 客户端 MaxIdleConns 和 MaxIdleConnsPerHost 参数,增强日志备份以及 PITR 恢复任务对连接复用的支持 #46011 @Leavrth
      • 增强 BR 在连接 PD 或外部 S3 存储出错时的容错能力 #42909 @Leavrth
      • 新增 restore 参数 WaitTiflashReady。当打开这个参数时,restore 操作将会等待 TiFlash 副本复制成功后才结束 #43828 #46302 @3pointer
      • 减少日志备份 resolve lock 的 CPU 开销 #40759 @3pointer
    • TiCDC

      • 优化同步 ADD INDEX DDL 的执行逻辑,从而不阻塞后续的 DML 语句 #9644 @sdojjy
    • TiDB Lightning

      • 优化 TiDB Lightning 在 Region scatter 阶段的重试逻辑 #46203 @mittalrishabh
      • 优化 TiDB Lightning 在导入数据阶段对 no leader 错误的重试逻辑 #46253 @lance6716
开源框架 NanUI 作者转行卖钢材,项目暂停开发 苹果 App Store 免费榜第一是黄色软件 TypeScript 刚刚流行起来,为什么大牛们就开始抛弃了? TIOBE 10 月榜单:Java 跌幅最大,C# 逼近 Java Rust 1.73.0 发布 男子受 AI 女友怂恿刺杀英国女王,被判入狱九年 Qt 6.6 正式发布 路透社:RISC-V 技术成为中美科技战的新战场 RISC-V:不受任何单一公司或国家的控制 联想计划推出 Android PC
{{o.name}}
{{m.name}}

Supongo que te gusta

Origin my.oschina.net/u/5674736/blog/10117459
Recomendado
Clasificación