Después de un año de desarrollo y seis versiones preliminares el primer lanzamiento estable de la nueva rama de base de datos , en la cual se desarrolla una bifurcación de MySQL que mantiene la compatibilidad hacia atrás y por la integración de motores de almacenamiento adicionales y capacidades avanzadas. El soporte para la nueva rama se llevará a cabo durante 5 años, hasta junio de 2024.
El desarrollo de MariaDB está supervisado por la organización independiente MariaDB Foundation, de acuerdo con un proceso de desarrollo completamente abierto y transparente, que no depende de proveedores individuales. MariaDB se proporciona en lugar de MySQL en muchas distribuciones de Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) y se ha implementado en grandes proyectos como , y .
Mejoras clave :
- Se incluye la tecnología de replicación multi-master síncrona , que permite aplicar una topología active-active multi-master, lo que permite lectura y escritura desde cualquier nodo. Con la replicación síncrona, todos los nodos siempre contienen datos actualizados, es decir, se garantiza que no haya transacciones perdidas, ya que una transacción se registra solo después de que los datos se han propagado a todos los nodos. La replicación se realiza en modo paralelo, a nivel de fila, transmitiendo solo información sobre los cambios;
- En sistemas Unix-like, por defecto se utiliza el plugin de autenticación , que permite usar las cuentas presentes en el sistema para conectarse a la base de datos a través de un socket unix local;
- Se ha añadido de establecer una duración para la contraseña del usuario, tras la cual la contraseña se marcará como caducada. Para establecer el plazo de la contraseña en las operaciones de 'CREATE USER' y 'ALTER USER' se ha añadido la expresión 'PASSWORD EXPIRE INTERVAL N DAY';
- Se ha añadido soporte para de usuarios de la base de datos a través de la expresión 'ACCOUNT LOCK' en las operaciones de 'CREATE USER' y 'ALTER USER';
- Se ha acelerado considerablemente la verificación de privilegios en configuraciones con un gran número de usuarios o reglas de acceso;
- el uso de las tablas mysql.user y mysql.host. Para almacenar cuentas y permisos globales ahora se utiliza la tabla mysql.global_priv;
- En de autenticación soporte para la expresión 'SET PASSWORD';
- la posibilidad de usar más de un plugin de autenticación para cada cuenta, lo que puede ser útil para la migración gradual de usuarios a un plugin . Al crear un usuario root@localhost con el script mysql_install_db, ahora se incluyen por defecto dos plugins de autenticación: unix_socket y mysql_native_password;
- En el almacenamiento InnoDB se implementó la operación de eliminación instantánea de columnas (ALTER TABLE … DROP COLUMN … ALGORITHM=INSTANT) y el cambio del orden de las columnas. Se ha reducido el tamaño del log de retroceso inicial (redo log). Se añadió soporte para la rotación de claves para innodb_encrypt_log. Se implementó el algoritmo de verificación de sumas de comprobación
innodb_checksum_algorithm=full_crc32. Se asegura la expansión instantánea del tipo VARCHAR y el cambio de codificación de texto para columnas no indexadas; - Se mejoró el optimizador. Se añadió la posibilidad de trazar el optimizador, activable a través de la variable del sistema . Por defecto llevando estadísticas independientes de los motores de almacenamiento.
Se introdujeron dos nuevos modos use_stat_tables — COMPLEMENTARY_FOR_QUERIES y PREFERABLY_FOR_QUERIES. Se activó el modo optimize_join_buffer_size. Se añadieron nuevos rowid_filter y condition_pushdown_from_having; - Se amplió el soporte de tablas versionadas del sistema, en las que no solo se almacena un corte actual de los datos, sino también información sobre todos los cambios realizados anteriormente con rangos de tiempo;
- Se añadió un nuevo comando «FLUSH SSL» para recargar los certificados SSL sin reiniciar el servidor;
- En la operación «INSTALL PLUGIN», «UNINSTALL PLUGIN» y «UNINSTALL SONAME» se añadió soporte para las expresiones «IF NOT EXISTS» y «IF EXISTS»;
- Se propusieron tablas del sistema que son resistentes a fallos, para el almacenamiento de las cuales se utiliza el motor ;
- Se realizó la transición para utilizar el estándar C++11 (se implementaron operaciones atómicas);
- Se mejoró significativamente el rendimiento de las propiedades de localización «Collation» para Unicode, permitiendo establecer reglas de ordenación y métodos de comparación tomando en cuenta el significado de los caracteres;
- un plugin para definir tipos de campos personalizados;
- Se añadió soporte para funciones de ventana En la operación «FLUSH TABLES»
- se implementó el modo «BACKUP LOCK», que se puede usar durante la copia de seguridad de archivos de la base de datos;
- soporte para comandos de servidor que comienzan con el nombre mariadb, alternativos a los comandos que comienzan con «mysql» (por ejemplo, maridump en lugar de mysqldump).
Fuente: opennet.ru
