This is a read-only copy of the MariaDB Knowledgebase generated on 2025-06-06. For the latest, interactive version please visit https://mariadb.com/kb/.

What's New in MariaDB Enterprise Server 11.8

MariaDB Enterprise Server 11.8 introduces a wide range of enhancements spanning developer productivity, security, compatibility, observability, and support for modern workloads like vector search. The MariaDB Enterprise Server 11.8.2-0 Technical Preview adds the innovations from the MariaDB Community Server releases 11.5 to 11.8 to MariaDB Enterprise Server 11.4.

MariaDB Enterprise Server 11.8 continues to expand its native vector search capabilities, positioning MariaDB for AI-powered applications such as semantic search and recommendation systems. Already available in the MariaDB Enterprise Server 11.4 are:

  • New Data Type: VECTOR(N) to store multi-dimensional embeddings.
  • Vector Indexing: Efficient similarity search with VECTOR INDEX.
  • Distance Functions:
    • VEC_DISTANCE_EUCLIDEAN() for L2 distance.
    • VEC_DISTANCE_COSINE() for angular similarity.
  • Conversion Functions:
    • Vec_FromText(json_array) and Vec_ToText(vector_column) transform between the text and binary vector formats.
  • System Variables for Index Tuning:
    • mhnsw_max_cache_size, mhnsw_default_distance, mhnsw_default_m, mhnsw_ef_search.

Added to MariaDB Enterprise Server 11.8

  • Distance Functions:
    • VEC_DISTANCE() auto-selects the best distance function based on the index configuration.

Indexes, SQL Functions, and Query Enhancements

  • UUID Generation: New functions UUID_v4() and UUID_v7() for modern and time-ordered UUIDs.
  • Multi-Table DELETE Enhancements: Support for ORDER BY and LIMIT.
  • Single-Table DELETE Enhancements: Now it allows index hints.
  • NEW SHOW CREATE SERVER: Recreate server objects similar to SHOW CREATE TABLE.

Data Types and Compatibility

  • UTF-8 by Default: utf8mb4 replaces latin1 and legacy utf8, ensuring full Unicode support, including emojis.
  • Default Collation: utf8mb4_uca1400_ai_ci is now the standard for Unicode character sets.
  • Extended TIMESTAMP Range: Increased upper bound to 2106 on 64-bit systems.
  • ROW Type Enhancements:
    • ROW types are now usable as stored function return values.
      The support for %ROWTYPE, TYPE OF, and RECORD(...) declarations for Oracle-like compatibility:
DECLARE
  TYPE DeptRecTyp IS RECORD (
    dept_id    NUMBER(4),
    dept_name  VARCHAR2(30),
    mgr_id     NUMBER(6),
    loc_id     NUMBER(4)
  );
  • Triggers:
    • BEFORE UPDATE OF col1, col2 limits trigger execution to specific column updates:
CREATE TRIGGER mytrigger BEFORE UPDATE OF col1, col2 ON t1 FOR EACH ROW 

Use of SIGNAL SQLSTATE '02TRG' allows skipping a row operation.

  • Stored Procedures: Now support default parameter values:
CREATE OR REPLACE PROCEDURE p1(param1 INT, param2 INT DEFAULT 1)

Enhancements to System Versioned Tables

  • System Versioned Tables is a powerful feature for auditing changes to data. Enabling System Versioned Tables is as easy as creating a table by using
    CREATE TABLE contracts (...) WITH SYSTEM VERSIONING;
    
    Or enabling the feature for an existing table by using
    ALTER TABLE contracts ADD SYSTEM VERSIONING;
    
    In both cases, invisible fields will be created in the table to track the timestamps and period for which the data is valid. A DBA/DevOps might want these fields to be visible. It is now possible to change such implicit fields to explicit ones by the following types of statements:
SET @@system_versioning_alter_history= keep;
ALTER TABLE contracts ADD COLUMN rs timestamp(6) AS ROW START, ADD COLUMN re timestamp(6) AS ROW END, ADD PERIOD FOR SYSTEM_TIME (rs,re);

Security

  • New Authentication Plugin—PARSEC:
    • Based on elliptic curve cryptography.
    • Mitigates the replay and man-in-the-middle attacks.
      Example on how to create a user using the new authentication plugin:
      CREATE USER 'MariaDBUser'@'%' IDENTIFIED VIA PARSEC USING PASSWORD('MyPassword123!');
      
      This will result in:
      SHOW GRANTS FOR MariaDBUser@'%';
      
Grants for MariaDBUser@%
GRANT USAGE ON *.* TO `MariaDBUser`@`%` IDENTIFIED VIA parsec USING 'P0:lhXyNv1cIxpB8EnTxR7ON7S7:1l3rWRW1/jw45yrvYXB8eh02wzk7lcJcz4CMc
Ww2b+8'
  • Unix Socket Enhancements:
    • Now supports explicit OS user mapping via IDENTIFIED VIA UNIX_SOCKET AS 'user'.
    • It is also possible to specify more than one OS user with the usual OR syntax:
CREATE USER dba IDENTIFIED VIA UNIX_SOCKET AS 'jack' OR IDENTIFIED VIA UNIX_SOCKET AS 'jill';

Replication & Clustering

Master_last_event_time

Slave_last_event_time

Master_Slave_time_diff
MariaDB [test]> SELECT Master_last_event_time,Slave_last_event_time,Master_Slave_time_diff FROM information_schema.slave_status\G
*************************** 1. row ***************************
Master_last_event_time: 2024-08-13 07:32:38
Slave_last_event_time: 2024-08-13 07:32:37
Master_Slave_time_diff: 1
  • New Option – --slave-abort-blocking-timeout: Kills blocking non-replication queries after a timeout.
  • Galera SST Automation: SST user is now auto-created and managed internally.

Key Management

  • KMS Plugin Enhancement: The file_key_management plugin can now read keys from a Unix socket, not just from files.

Observability & Information Schema

  • Temporary File Disk Space Limits:
    • max_tmp_session_space_usage and max_tmp_total_space_usage prevent runaway disk usage.
  • New Status Variables: tmp_space_used, max_tmp_space_used.
  • New Information Schema Views:
    • SLAVE_STATUS to view replication lag via SQL.
    • USERS for password state and expiration monitoring.
    • SEQUENCES to introspect auto-generated sequences:
SELECT * FROM INFORMATION_SCHEMA.SEQUENCES\G
*************************** 1. row ***************************
       SEQUENCE_CATALOG: def
        SEQUENCE_SCHEMA: test
          SEQUENCE_NAME: s_name
              DATA_TYPE: tinyint
      NUMERIC_PRECISION: 8
NUMERIC_PRECISION_RADIX: 2
          NUMERIC_SCALE: 0
            START_VALUE: 100
          MINIMUM_VALUE: -127
          MAXIMUM_VALUE: 126
              INCREMENT: 10
           CYCLE_OPTION: 0
  • Enhanced ANALYZE FORMAT=JSON:
    • Includes r_index_rows, r_icp_filtered.
  • Thread Naming for Diagnostics: Thread names are now more descriptive.

Tool Improvements

  • mariadb-dump:
    • The --dir=<path> dumps each database to its subdirectory.
    • Supports parallel dumps and restores.
    • New --update-history converts row_end TIMESTAMPs during export.
  • mariadb-import:
    • --dir=<path> restores from the dumped directory structure.
    • Supports --database, --table, --ignore-database, --ignore-table for selective restore.
    • --innodb-optimize-keys: defers index creation to speed up data loads.

Userstat Plugin Enhancements

  • Improved Insights:
    • Index usage via QUERIES in INDEX_STATISTICS.
    • Query operation counts: ROWS_INSERTED, ROWS_UPDATED, KEY_READ_HITS, etc.
    • New stats in CLIENT_STATISTICS and USER_STATISTICS.
    • Table I/O metrics: PAGES_ACCESSED, PAGES_READ_FROM_DISK.

Available Versions

Installation Instructions

Upgrade Instructions

What's new in older release series

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.