At cdmon we are updating the MariaDB version on our servers, upgrading to version 10.11. This update improves database performance and security, but it also introduces some changes that may affect certain applications or queries.
The update will be carried out progressively across all cdmon servers. At some point during the early morning, there may be a short interruption of around 15 minutes. In most cases, you do not need to do anything. However, if your application or website uses databases, we recommend checking its operation after the update to ensure everything continues to work correctly.
Below you will find a summary of the main changes and updates introduced in this new MariaDB 10.11 version. These changes may affect your application depending on how it uses the database.
1. Changes in data storage and format
InnoDB
The InnoDB storage engine has undergone several modifications that may influence the behavior of tables and stored data:
The InnoDB file format is now always Barracuda (previously it could be "Antelope").
The innodb_large_prefix variable has been removed, so keys in InnoDB tables always use the maximum possible length.
The innodb_file_format option has been removed.
Note: If you previously used the "Antelope" format and your tables included long rows or indexes with large prefixes, you may experience differences in storage or performance. Although most applications will not be affected, it is recommended to review tables that may have depended on the limitations of the previous format. Additionally, if your application attempts to insert data that violates InnoDB constraints, such as duplicate keys or data exceeding the allowed size, it may previously have generated only a warning.
Timestamps and Dates (DATETIME)
Date and time related data types have been updated to improve precision:
Dates now include milliseconds by default.
If your application expects dates without milliseconds, it may need to be adapted.
Note: If your application compares dates and times without considering milliseconds, you may encounter discrepancies. For example, a query that previously compared 2025-03-06 11:48:21 may now return different results if stored timestamps include milliseconds, such as 2025-03-06 11:48:21.123
JSON
JSON-related functions have been improved to provide greater flexibility and fix errors:
The JSON_TABLE() function now allows column names with special characters inside quotes.
Errors have been fixed in JSON_VALID() and JSON_QUERY(), which may affect JSON validations in your application.
Note: If your application uses JSON_TABLE() to extract JSON data and previously avoided column names with special characters due to restrictions, you can now use them directly. This change makes it easier to manipulate JSON data with more complex structures.
2. Changes in SQL query execution
ORDER BY and LIMIT
Optimizations have been implemented in the execution of queries that use ORDER BY together with LIMIT:
Improved optimization: MariaDB has improved the optimization of ORDER BY ... LIMIT, which may change the order of results if an explicit ORDER BY clause is not used. If your queries depend on a specific order, make sure they always include a defined ORDER BY clause.
Example: If an ORDER BY is not specified, the result set may vary between executions due to internal optimizations. To ensure a consistent order, it is essential to specify the ORDER BY clause. Example command: SELECT * FROM empleados ORDER BY fecha_contratacion DESC LIMIT 10;
SQL Functions
Some SQL functions have been updated to expand compatibility and fix errors:
The functions GREATEST() and LEAST() now work correctly with date and time values (DATETIME and TIMESTAMP).
Errors have been fixed in functions such as REPLACE(), LOCATE(), and other string-related functions.
Example: If you have two date columns and want to obtain the most recent one per row, you can use: SELECT GREATEST(fecha_inicio, fecha_fin) AS fecha_mas_reciente FROM proyectos;
Previously, this could have produced unexpected results or errors, but with the update, the function correctly handles these data types.
GROUP BY
The evaluation of conditions in queries using GROUP BY has changed:
Note: It is important to ensure that the condition in HAVING is logical and aligned with the actual data, as evaluating it before grouping may filter records before counting them, altering the expected result.
We recommend reviewing your applications and performing tests after the update to ensure correct operation. If you have any questions or need assistance, our support team is available to help you.
For more detailed information about the upgrade from previous versions, you can consult the following official MariaDB links: