Discover how MariaDB 11.x is redefining open-source databases with cutting-edge features like system-versioned tables, native AI-ready vector support, UUIDv7 for scalable inserts, and enterprise-grade security—all in the Community Edition, without the paywall.
Jelson November 03, 2025
Why MariaDB Is No Longer Just a MySQL’s Alternative ?
For a long time, MariaDB was seen as a drop-in replacement for MySQL familiar, compatible, and largely similar. However, with the release of the 11.x series, it is now evident that MariaDB is no longer simply following MySQL’s lead; it is forging its own distinct path.
Exploring MariaDB 11.x reveals a forward-thinking approach in its feature set. Innovations such as system-versioned tables for historical tracking, native vector support for AI workloads, UUIDv7 for scalable inserts, and an extended timestamp range represent more than just incremental improvements. These are features designed to meet the demands of the next generation of applications.
This article highlights the most notable of these features and explains why MariaDB is evolving into a database built for what is next, not just what is now.
1 ] System-Versioned Tables
One standout feature is System-Versioned Tables. Without writing any triggers or logging infrastructure, MariaDB now automatically tracks changes to your rows - storing their "from" and "to" timestamps behind the scenes.
Need to know what a customer’s profile looked like last quarter? A query using FOR SYSTEM_TIME AS OF can provide the answer. It’s perfect for auditing, regulatory needs, or just understanding how a value evolved over time.
The convenience comes with a cost—additional disk space usage - but for high-integrity or compliance-critical environments, it’s a no-brainer.
MariaDB [galaxy]> CREATE TABLE employee (
-> emp_id INT PRIMARY KEY,
-> name VARCHAR(100),
-> department VARCHAR(50),
-> salary DECIMAL(10,2),
-> row_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START,
-> row_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END,
-> PERIOD FOR SYSTEM_TIME (row_start, row_end)
-> )
-> WITH SYSTEM VERSIONING;
Query OK, 0 rows affected (0.016 sec)
MariaDB [galaxy]> SELECT * FROM employee FOR SYSTEM_TIME ALL;
+--------+----------+------------+-----------+----------------------------+----------------------------+
| emp_id | name | department | salary | row_start | row_end |
+--------+----------+------------+-----------+----------------------------+----------------------------+
| 1 | John Doe | Finance | 55000.00 | 2025-06-18 05:00:59.208629 | 2025-06-18 05:01:02.606930 |
| 1 | John Doe | Finance | 60000.00 | 2025-06-18 05:01:02.606930 | 2025-06-18 05:03:08.245146 |
| 1 | John Doe | Finance | 999999.00 | 2025-06-18 05:03:08.245146 | 2025-06-18 05:05:05.316171 |
| 1 | John Doe | Finance | 900.00 | 2025-06-18 05:05:05.316171 | 2106-02-07 06:28:15.999999 |
+--------+----------+------------+-----------+----------------------------+----------------------------+
4 rows in set (0.000 sec)
MariaDB [galaxy]> SELECT * FROM employee FOR SYSTEM_TIME AS OF TIMESTAMP '2025-06-18 05:04:57';
+--------+----------+------------+-----------+----------------------------+----------------------------+
| emp_id | name | department | salary | row_start | row_end |
+--------+----------+------------+-----------+----------------------------+----------------------------+
| 1 | John Doe | Finance | 999999.00 | 2025-06-18 05:03:08.245146 | 2025-06-18 05:05:05.316171 |
+--------+----------+------------+-----------+----------------------------+----------------------------+
1 row in set (0.000 sec)2 ] Vector Data Type and Indexing
Another eye-opener was the new support for the VECTOR(n) data type. MariaDB is now stepping into the AI/ML space by allowing embeddings to be stored and indexed directly inside the database.
This can simplify AI-enhanced application development by reducing the need for additional data pipelines or specialized storage layers.
MariaDB [galaxy]> CREATE TABLE `products` (
-> `id` int(11) NOT NULL,
-> `name` varchar(255) DEFAULT NULL,
-> `embedding` vector(128) NOT NULL,
-> PRIMARY KEY (`id`)
-> );
Query OK, 0 rows affected (0.008 sec)
MariaDB [galaxy]> create vector index idv_vec_embedding on products(embedding);
Query OK, 0 rows affected (0.036 sec)
Records: 0 Duplicates: 0 Warnings: 03 ] UUIDv7 as Default Primary Key
MariaDB supports UUIDv7, which is time-ordered , retaining uniqueness while optimizing insert performance.
UUIDv7 values can be generated automatically as the default primary key, removing the need for middleware logic or external UUID libraries.
MariaDB [galaxy]> CREATE TABLE orders (
-> id CHAR(36) PRIMARY KEY DEFAULT UUID_V7(),
-> customer_name VARCHAR(255),
-> created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
-> );
Query OK, 0 rows affected (0.009 sec)
MariaDB [galaxy]> insert into orders(customer_name) values ('jelson') ;
Query OK, 1 row affected (0.002 sec)
MariaDB [galaxy]> select * from orders;
+--------------------------------------+---------------+---------------------+
| id | customer_name | created_at |
+--------------------------------------+---------------+---------------------+
| 019781ab-5e9c-7520-ad90-18de35d6f578 | jelson | 2025-06-18 06:13:01 |
+--------------------------------------+---------------+---------------------+
1 row in set (0.000 sec)You can retrieve the timestamp by using the ` FROM_UNIXTIME ` function commonly used for converting epoch values.
MariaDB [galaxy]> SELECT FROM_UNIXTIME(CONV(LEFT(REPLACE('019781ab-5e9c-7520-ad90-18de35d6f578', '-', ''), 12), 16, 10)/1000) as time;
+----------------------------+
| time |
+----------------------------+
| 2025-06-18 06:13:01.211999 |
+----------------------------+
1 row in set (0.001 sec)4 ] Extended Timestamp Range
The 2038 timestamp overflow problem has long been a concern, especially in systems dealing with long-term subscriptions or records.
MariaDB’s switch to a 64-bit-safe timestamp solves this elegantly - you can now store and compute dates well into the 22nd century.
Paired with system-versioned tables and other temporal features, this makes MariaDB one of the few open-source databases that’s already future-proofed for long-range planning.
MariaDB [galaxy]> CREATE TABLE log_events (
-> id INT AUTO_INCREMENT PRIMARY KEY,
-> description TEXT,
-> log_time TIMESTAMP
-> );
Query OK, 0 rows affected (0.008 sec)
MariaDB [galaxy]> INSERT INTO log_events (description, log_time)
-> VALUES ('System patch scheduled', '2100-12-31 23:59:59');
Query OK, 1 row affected (0.002 sec)MariaDB Community Edition: Features Without the Paywall
Why pay for what you can get for free? Unlike MySQL, which restricts essential capabilities to its Enterprise Edition, MariaDB Community Edition provides a comprehensive suite of features to all users. These include Transparent Data Encryption (TDE) for data at rest, a built-in Audit Plugin for compliance, and Thread Pooling for high-concurrency workloads. Let's explore how MariaDB delivers enterprise functionality without the enterprise price tag.
1 ] Authentication with PAM Plugin
MariaDB Community Edition provides native support for Pluggable Authentication Modules (PAM), which enables seamless integration of database authentication with centralized identity systems such as system users, LDAP, or Active Directory.
This functionality is crucial for organizations that require central identity management, as it simplifies user administration and significantly enhances security by leveraging established and secure authentication protocols.
MariaDB [(none)]> INSTALL SONAME 'auth_pam';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> CREATE USER 'jelson'@'localhost' IDENTIFIED VIA pam;
Query OK, 0 rows affected (0.002 sec)This creates a user who will authenticate against the system's PAM stack, not an internal database password.
2 ] Audit Logging
Auditing is a critical requirement for both compliance and security. MariaDB addresses this need by shipping with a built-in server_audit plugin that provides comprehensive logging of connections, executed queries, and table access.
This powerful, native tool provides a detailed audit trail to effectively monitor database activity and satisfy regulatory compliance standards, all without the need for external tools or a costly enterprise license.
MariaDB [(none)]> INSTALL SONAME 'server_audit';
Query OK, 0 rows affected (0.018 sec)
MariaDB [(none)]> SET GLOBAL server_audit_logging = ON;
Query OK, 0 rows affected (0.002 sec)This command globally enables the audit logging feature, immediately starting the logging process. As a safer practice, make an entry in the my.cnf file to ensure audit logging after the database restart .
3 ] Thread Pool Configuration
In high-concurrency scenarios, efficient thread management is paramount for maintaining stability and performance. MariaDB Community Edition natively offers thread pooling, which allows the server to efficiently handle thousands of simultaneous connections.
By reusing a fixed pool of threads instead of creating a new one for each connection, this feature significantly reduces resource overhead and context-switching, ensuring the database remains responsive and stable under heavy workloads.
[mysqld]
thread_handling=pool-of-threads
thread_pool_size=8Make this configuration in my.cnf to enable the thread pool and set its size, to be applied on server restart.
4 ] Transparent Data Encryption (TDE) for InnoDB Tables
MariaDB also delivers full support for Transparent Data Encryption (TDE), providing at-rest encryption for InnoDB tables. This powerful security feature leverages a file-based key management plugin to protect sensitive data on the disk from unauthorized access.
The encryption and decryption processes are handled automatically by the database engine itself, ensuring the security is transparent to the application and end-users.
MariaDB [test]> CREATE TABLE enc_test1 (
-> id INT,
-> secret VARCHAR(255)
-> ) ENGINE=InnoDB ENCRYPTED=YES ENCRYPTION_KEY_ID=1;
Query OK, 0 rows affected (0.013 sec)
MariaDB [test]>
MariaDB [test]> CREATE TABLE enc_test2 (
-> id INT,
-> secret VARCHAR(255)
-> ) ENGINE=InnoDB ENCRYPTED=YES ENCRYPTION_KEY_ID=2;
Query OK, 0 rows affected (0.007 sec)Conclusion
MariaDB 11.x may not make headlines, but it marks a thoughtful evolution focused on real-world needs. Features like system-versioned tables, AI-ready vector indexing, UUIDv7 support, and extended timestamp precision make it a strong fit for modern applications.
As outlined in this blog, upgrading to MariaDB 11.x isn’t just a version bump. It’s important to evaluate compatibility, update schemas where needed, and test new capabilities in production like environments.
If you're planning your move to MariaDB 11.x, our team is here to assist.
Contact us at: sales@mafiree.com
Let us help ensure a smooth and future-ready migration.
Miru IT Park, Vallankumaranvillai,
Nagercoil, Tamilnadu - 629 002.
Unit 303, Vanguard Rise,
5th Main, Konena Agrahara,
Old Airport Road, Bangalore - 560 017.
Call: +91 6383016411
Email: sales@mafiree.com