

# MariaDB feature support on Amazon RDS
<a name="MariaDB.Concepts.FeatureSupport"></a>

RDS for MariaDB supports most of the features and capabilities of MariaDB. Some features might have limited support or restricted privileges.

You can filter new Amazon RDS features on the [What's New with Database?](https://aws.amazon.com/about-aws/whats-new/database/) page. For **Products**, choose **Amazon RDS**. Then search using keywords such as **MariaDB 2023**.

**Note**  
The following lists are not exhaustive.

For more information about MariaDB feature support on Amazon RDS, see the following topics.

**Topics**
+ [Supported storage engines for MariaDB on Amazon RDS](MariaDB.Concepts.Storage.md)
+ [Cache warming for MariaDB on Amazon RDS](MariaDB.Concepts.XtraDBCacheWarming.md)
+ [MariaDB features not supported by Amazon RDS](MariaDB.Concepts.FeatureNonSupport.md)

## MariaDB feature support on Amazon RDS for MariaDB major versions
<a name="MariaDB.Concepts.FeatureSupport.MajorVersions"></a>

In the following sections, find information about MariaDB feature support on Amazon RDS for MariaDB major versions:

**Topics**
+ [

### MariaDB 11.8 support on Amazon RDS
](#MariaDB.Concepts.FeatureSupport.11-8)
+ [

### MariaDB 11.4 support on Amazon RDS
](#MariaDB.Concepts.FeatureSupport.11-4)
+ [

### MariaDB 10.11 support on Amazon RDS
](#MariaDB.Concepts.FeatureSupport.10-11)
+ [

### MariaDB 10.6 support on Amazon RDS
](#MariaDB.Concepts.FeatureSupport.10-6)
+ [

### MariaDB 10.5 support on Amazon RDS
](#MariaDB.Concepts.FeatureSupport.10-5)
+ [

### MariaDB 10.4 support on Amazon RDS
](#MariaDB.Concepts.FeatureSupport.10-4)

For information about supported minor versions of Amazon RDS for MariaDB, see [MariaDB on Amazon RDS versions](MariaDB.Concepts.VersionMgmt.md).

### MariaDB 11.8 support on Amazon RDS
<a name="MariaDB.Concepts.FeatureSupport.11-8"></a>

Amazon RDS supports the following new features for your DB instances running MariaDB version 11.8 or higher.

**Note**  
In MariaDB 11.8, the default value for `require_secure_transport` is now `1`, requiring secure SSL/TLS connections. Set to `0` if non-secure connections are needed.
+ **New default value for parameter** – The default value of `require_secure_transport` parameter changed from `0` to `1`, enforcing secure transport connections by default. For more information, see [Requiring SSL/TLS for all connections to a MariaDB DB instance on Amazon RDS](mariadb-ssl-connections.require-ssl.md). 
+ **Vector support** – You can use the MariaDB Vector to store and search AI-generated vectors directly in MariaDB. This feature introduces the following system variables:
  + The variable [https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_default_distance](https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_default_distance) specifies the default distance metric for MHNSW vector indexing.
  + The variable [https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_default_m](https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_default_m) defines the default value for the `M` parameter in MHNSW vector indexing.
  + The variable [https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_ef_search](https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_ef_search) defines the minimal number of result candidates for vector index searches.
  + The variable [https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_max_cache_size](https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_max_cache_size) sets the upper limit for one MHNSW vector index cache.
+ **Temporary file size limits** – You can now limit the size of created disk temporary files and tables using two system variables available in the RDS Maria DB 11.8 parameter group:
  + The variable [https://mariadb.com/docs/server/security/limiting-size-of-created-disk-temporary-files-and-tables/max_tmp_session_space_usage-system-variable](https://mariadb.com/docs/server/security/limiting-size-of-created-disk-temporary-files-and-tables/max_tmp_session_space_usage-system-variable) limits the temporary space allowance per user.
  + The variable [https://mariadb.com/docs/server/security/limiting-size-of-created-disk-temporary-files-and-tables/max_tmp_total_space_usage-system-variable](https://mariadb.com/docs/server/security/limiting-size-of-created-disk-temporary-files-and-tables/max_tmp_total_space_usage-system-variable) limits the temporary space allowance for all users.
+ **Temporary tablespace management** – The temporary tablespace stores temporary tables and grows as data is added. When temporary tables are dropped, the space is not automatically reclaimed. You can use the [mysql.rds\$1execute\$1operation](mysql_rds_execute_operation.md) procedure to shrink the temporary tablespace and reclaim disk space.

For a list of all MariaDB 11.8 features and their documentation, see [Changes and improvements in MariaDB 11.8](https://mariadb.com/kb/en/changes-improvements-in-mariadb-11-8/) and [Release notes - MariaDB 11.8 series](https://mariadb.com/kb/en/release-notes-mariadb-11-8-series/) on the MariaDB website.

For a list of unsupported features, see [MariaDB features not supported by Amazon RDS](MariaDB.Concepts.FeatureNonSupport.md).

### MariaDB 11.4 support on Amazon RDS
<a name="MariaDB.Concepts.FeatureSupport.11-4"></a>

Amazon RDS supports the following new features for your DB instances running MariaDB version 11.4 or higher.
+ **Crypographic library** – RDS for MariaDB replaced OpenSSL with AWS Libcrypto (AWS-LC), which is FIPS 140-3 certified.
+ **Simple Password Check plugin** – You can use the MariaDB [Simple Password Check Plugin](https://mariadb.com/kb/en/simple-password-check-plugin/) to check whether a password contains at least a specific number of characters of a specific type. For more information, see [Using the password validation plugins for RDS for MariaDB](MariaDB.Concepts.PasswordValidationPlugins.md).
+ **Cracklib Password Check plugin** – You can use the MariaDB [Cracklib Password Check Plugin](https://mariadb.com/kb/en/cracklib-password-check-plugin/) to check the strength of new passwords. For more information, see [Using the password validation plugins for RDS for MariaDB](MariaDB.Concepts.PasswordValidationPlugins.md).
+ **InnoDB enhancements** – These enhancements include the following items:
  + The change buffer was removed. For more information, see [InnoDB Change Buffering](https://mariadb.com/kb/en/innodb-change-buffering/).
  + InnoDB Defragmentation was removed. For more information, see [InnoDB Defragmentation](https://mariadb.com/kb/en/defragmenting-innodb-tablespaces/#innodb-defragmentation).
+ **New privilege** – The admin user now also has the `SHOW CREATE ROUTINE` privilege. This privilege permits the grantee to view the `SHOW CREATE` definition statement of a routine that's owned by another user. For more information, see [Database Privileges](https://mariadb.com/kb/en/grant/#database-privileges).
+ **Replication improvement** – MariaDB version 11.4 DB instances support binlog indexing. You can create a GTID index for each binlog file. These indexes improve the performance of replication by reducing the time it takes to locate a GTID. For more information, see [Binlog Indexing](https://mariadb.com/kb/en/gtid/#binlog-indexing).
+ **Deprecated or removed parameters **– The following parameters have been deprecated or removed for MariaDB version 11.4 DB instances:
  + `engine_condition_pushdown` is removed from [optimizer\$1switch](https://mariadb.com/kb/en/optimizer-switch/)
  + [innodb\$1change\$1buffer\$1max\$1size](https://mariadb.com/kb/en/innodb-system-variables/#innodb_change_buffer_max_size)
  + [innodb\$1defragment](https://mariadb.com/kb/en/innodb-system-variables/#innodb_defragment)
  + `TLSv1.0` and `TLSv1.1` are removed from [tls\$1version](https://mariadb.com/kb/en/ssltls-system-variables/#tls_version)
+ **New default values for a parameter** – The default value of the [innodb\$1undo\$1tablespaces](https://mariadb.com/kb/en/innodb-system-variables/#innodb_undo_tablespaces) parameter changed from `0` to `3`.
+ **New valid values for parameters** – The following parameters have new valid values for MariaDB version 11.4 DB instances:
  + The valid values for the [binlog\$1row\$1image](https://mariadb.com/kb/en/replication-and-binary-log-system-variables/#binlog_row_image) parameter now include `FULL_NODUP`.
  + The valid values for the [OLD\$1MODE](https://mariadb.com/kb/en/old-mode/) parameter now include `NO_NULL_COLLATION_IDS`.
+ **New parameters** – The following parameters are new for MariaDB version 11.4 DB instances:
  + The [transaction\$1isolation](https://mariadb.com/kb/en/server-system-variables/#transaction_isolation) parameter replaces the [tx\$1isolation](https://mariadb.com/kb/en/server-system-variables/#tx_isolation) parameter.
  + The [transaction\$1read\$1only](https://mariadb.com/kb/en/server-system-variables/#transaction_read_only) parameter replaces the [tx\$1read\$1only](https://mariadb.com/kb/en/server-system-variables/#tx_read_only) parameter.
  + The [block\$1encryption\$1mode](https://mariadb.com/kb/en/server-system-variables/#block_encryption_mode) parameter defines the default block encryption mode for the [AES\$1ENCRYPT()](https://mariadb.com/kb/en/aes_encrypt/) and [AES\$1DECRYPT()](https://mariadb.com/kb/en/aes_decrypt/) functions.
  + The [ character\$1set\$1collations](https://mariadb.com/kb/en/server-system-variables/#character_set_collations) defines overrides for character set default collations.
  + The [binlog\$1gtid\$1index](https://mariadb.com/kb/en/system-versioned-tables/#binlog_gtid_index), [binlog\$1gtid\$1index\$1page\$1size](https://mariadb.com/kb/en/system-versioned-tables/#binlog_gtid_index_page_size), and [binlog\$1gtid\$1index\$1span\$1min](https://mariadb.com/kb/en/system-versioned-tables/#binlog_gtid_index_span_min) define the properties of the binlog GTID index. For more information, see [Binlog Indexing](https://mariadb.com/kb/en/gtid/#binlog-indexing). 

For a list of all MariaDB 11.4 features and their documentation, see [Changes and improvements in MariaDB 11.4](https://mariadb.com/kb/en/changes-improvements-in-mariadb-11-4/) and [Release notes - MariaDB 11.4 series](https://mariadb.com/kb/en/release-notes-mariadb-11-4-series/) on the MariaDB website.

For a list of unsupported features, see [MariaDB features not supported by Amazon RDS](MariaDB.Concepts.FeatureNonSupport.md).

### MariaDB 10.11 support on Amazon RDS
<a name="MariaDB.Concepts.FeatureSupport.10-11"></a>

Amazon RDS supports the following new features for your DB instances running MariaDB version 10.11 or higher.
+ **Password Reuse Check plugin** – You can use the MariaDB Password Reuse Check plugin to prevent users from reusing passwords and to set the retention period of passwords. For more information, see [Password Reuse Check Plugin](https://mariadb.com/kb/en/password-reuse-check-plugin/).
+ **GRANT TO PUBLIC authorization** – You can grant privileges to all users who have access to your server. For more information, see [GRANT TO PUBLIC](https://mariadb.com/kb/en/grant/#to-public).
+ **Separation of SUPER and READ ONLY ADMIN privileges** – You can remove READ ONLY ADMIN privileges from all users, even users that previously had SUPER privileges. 
+ **Security** – You can now set option `--ssl` as the default for your MariaDB client. MariaDB no longer silently disables SSL if the configuration is incorrect. 
+ **SQL commands and functions** – You can now use the `SHOW ANALYZE FORMAT=JSON` command and the functions `ROW_NUMBER`, `SFORMAT`, and `RANDOM_BYTES`. `SFORMAT` allows string formatting and is enabled by default. You can convert partition to table and table to partition in a single command. There are also several improvements around `JSON_*()` functions. `DES_ENCRYPT` and `DES_DECRYPT` functions were deprecated for version 10.10 and higher. For more information, see [SFORMAT](https://mariadb.com/kb/en/sformat/).
+ **InnoDB enhancements** – These enhancements include the following items:
  + Performance improvements in the redo log to reduce write amplification and to improve concurrency.
  + The ability for you to change the undo tablespace without reinitializing the data directory. This enhancement reduces control plane overhead. It requires restarting but it doesn't require reinitialization after changing undo tablespace. 
  + Support for `CHECK TABLE … EXTENDED` and for descending indexes internally.
  + Improvements to bulk insert.
+ **Binlog changes** – These changes include the following items:
  + Logging `ALTER` in two phases to decrease replication latency. The `binlog_alter_two_phase` parameter is disabled by default, but can be enabled through parameter groups.
  + Logging `explicit_defaults_for_timestamp`.
  + No longer logging `INCIDENT_EVENT` if the transaction can be safely rolled back. 
+ **Replication** **improvement**s – MariaDB version 10.11 DB instances use GTID replication by default if the master supports it. Also, `Seconds_Behind_Master` is more precise.
+ **Clients** – You can use new command-line options for `mysqlbinglog` and `mariadb-dump`. You can use `mariadb-dump` to dump and restore historical data.
+ **System versioning **– You can modify history. MariaDB automatically creates new partitions.
+ **Atomic DDL** – `CREATE OR REPLACE` is now atomic. Either the statement succeeds or it's completely reversed.
+ **Redo log write** – Redo log writes asynchronously.
+ **Stored functions **– Stored functions now support the same `IN`, `OUT`, and `INOUT` parameters as in stored procedures.
+ **Deprecated or removed parameters **– The following parameters have been deprecated or removed for MariaDB version 10.11 DB instances:
  + [innodb\$1change\$1buffering](https://mariadb.com/kb/en/innodb-system-variables/#innodb_change_buffering)
  + [innodb\$1disallow\$1writes](https://mariadb.com/kb/en/innodb-system-variables/#innodb_disallow_writes)
  + [innodb\$1log\$1write\$1ahead\$1size](https://mariadb.com/kb/en/innodb-system-variables/#innodb_log_write_ahead_size) 
  + [ innodb\$1prefix\$1index\$1cluster\$1optimization](https://mariadb.com/kb/en/innodb-system-variables/#innodb_prefix_index_cluster_optimization)
  + [ keep\$1files\$1on\$1create](https://mariadb.com/kb/en/server-system-variables/#keep_files_on_create)
  + [old](https://mariadb.com/kb/en/server-system-variables/#old)
+ **Dynamic parameters** – The following parameters are now dynamic for MariaDB version 10.11 DB instances:
  + [innodb\$1log\$1file\$1size](https://mariadb.com/kb/en/innodb-system-variables/#innodb_log_file_size)
  + [innodb\$1write\$1io\$1threads](https://mariadb.com/kb/en/innodb-system-variables/#innodb_write_io_threads)
  + [innodb\$1read\$1io\$1threads](https://mariadb.com/kb/en/innodb-system-variables/#innodb_read_io_threads)
+ **New default values for parameters** – The following parameters have new default values for MariaDB version 10.11 DB instances:
  + The default value of the [explicit\$1defaults\$1for\$1timestamp](https://mariadb.com/kb/en/server-system-variables/#explicit_defaults_for_timestamp) parameter changed from `OFF` to `ON`.
  + The default value of the [optimizer\$1prune\$1level](https://mariadb.com/kb/en/server-system-variables/#optimizer_prune_level) parameter changed from `1` to `2`.
+ **New valid values for parameters** – The following parameters have new valid values for MariaDB version 10.11 DB instances:
  + The valid values for the [old](https://mariadb.com/kb/en/server-system-variables/#old) parameter were merged into those for the [old\$1mode](https://mariadb.com/kb/en/server-system-variables/#old_mode) parameter.
  + The valid values for the [histogram\$1type](https://mariadb.com/kb/en/server-system-variables/#histogram_type) parameter now include `JSON_HB`.
  + The valid value range for the [innodb\$1log\$1buffer\$1size](https://mariadb.com/kb/en/innodb-system-variables/#innodb_log_buffer_size) parameter is now `262144` to `4294967295` (256KB to 4096MB).
  + The valid value range for the [innodb\$1log\$1file\$1size](https://mariadb.com/kb/en/innodb-system-variables/#innodb_log_file_size) parameter is now `4194304` to `512GB` (4MB to 512GB).
  + The valid values for the [optimizer\$1prune\$1level](https://mariadb.com/kb/en/server-system-variables/#optimizer_prune_level) parameter now include `2`. 
+ **New parameters** – The following parameters are new for MariaDB version 10.11 DB instances:
  + The [binlog\$1alter\$1two\$1phase](https://mariadb.com/kb/en/replication-and-binary-log-system-variables//#binlog_alter_two_phase) parameter can improve replication performance.
  + The [log\$1slow\$1min\$1examined\$1row\$1limit](https://mariadb.com/kb/en/server-system-variables/#log_slow_min_examined_row_limit) parameter can improve performance.
  + The [log\$1slow\$1query](https://mariadb.com/kb/en/server-system-variables/#log_slow_query) parameter and the [log\$1slow\$1query\$1file](https://mariadb.com/kb/en/server-system-variables/#log_slow_query_file) parameter are aliases for `slow_query_log` and `slow_query_log_file`, respectively.
  +  [ optimizer\$1extra\$1pruning\$1depth](https://mariadb.com/kb/en/server-system-variables/#optimizer_extra_pruning_depth)
  + [system\$1versioning\$1insert\$1history](https://mariadb.com/kb/en/system-versioned-tables/#system_versioning_insert_history)

For a list of all MariaDB 10.11 features and their documentation, see [Changes and improvements in MariaDB 10.11](https://mariadb.com/kb/en/changes-improvements-in-mariadb-1011/) and [Release notes - MariaDB 10.11 series](https://mariadb.com/kb/en/release-notes-mariadb-1011-series/) on the MariaDB website. 

For a list of unsupported features, see [MariaDB features not supported by Amazon RDS](MariaDB.Concepts.FeatureNonSupport.md). 

### MariaDB 10.6 support on Amazon RDS
<a name="MariaDB.Concepts.FeatureSupport.10-6"></a>

Amazon RDS supports the following new features for your DB instances running MariaDB version 10.6 or higher: 
+ **MyRocks storage engine** – You can use the MyRocks storage engine with RDS for MariaDB to optimize storage consumption of your write-intensive, high-performance web applications. For more information, see [Supported storage engines for MariaDB on Amazon RDS](MariaDB.Concepts.Storage.md) and [MyRocks](https://mariadb.com/kb/en/myrocks/).
+ **AWS Identity and Access Management (IAM) DB authentication** – You can use IAM DB authentication for better security and central management of connections to your MariaDB DB instances. For more information, see [IAM database authentication for MariaDB, MySQL, and PostgreSQL](UsingWithRDS.IAMDBAuth.md). 
+ **Upgrade options** – You can now upgrade to RDS for MariaDB version 10.6 from any prior major release (10.3, 10.4, 10.5). You can also restore a snapshot of an existing MySQL 5.6 or 5.7 DB instance to a MariaDB 10.6 instance. For more information, see [Upgrades of the MariaDB DB engine](USER_UpgradeDBInstance.MariaDB.md).
+ **Delayed replication** – You can now set a configurable time period for which a read replica lags behind the source database. In a standard MariaDB replication configuration, there is minimal replication delay between the source and the replica. With delayed replication, you can set an intentional delay as a strategy for disaster recovery. For more information, see [Configuring delayed replication with MariaDB](USER_MariaDB.Replication.ReadReplicas.DelayReplication.md).
+ **Oracle PL/SQL compatibility** – By using RDS for MariaDB version 10.6, you can more easily migrate your legacy Oracle applications to Amazon RDS. For more information, see [SQL\$1MODE=ORACLE](https://mariadb.com/kb/en/sql_modeoracle/).
+ **Atomic DDL** – Your dynamic data language (DDL) statements can be relatively crash-safe with RDS for MariaDB version 10.6. `CREATE TABLE`, `ALTER TABLE`, `RENAME TABLE`, `DROP TABLE`, `DROP DATABASE` and related DDL statements are now atomic. Either the statement succeeds, or it's completely reversed. For more information, see [Atomic DDL](https://mariadb.com/kb/en/atomic-ddl/).
+ **Other enhancements** – These enhancements include a `JSON_TABLE` function for transforming JSON data to relational format within SQL, and faster empty table data load with Innodb. They also include new `sys_schema` for analysis and troubleshooting, optimizer enhancement for ignoring unused indexes, and performance improvements. For more information, see [JSON\$1TABLE](https://mariadb.com/kb/en/json_table/).
+ **New default values for parameters** – The following parameters have new default values for MariaDB version 10.6 DB instances:
  + The default value for the following parameters has changed from `utf8` to `utf8mb3`: 
    + [character\$1set\$1client](https://mariadb.com/kb/en/server-system-variables/#character_set_client)
    + [character\$1set\$1connection](https://mariadb.com/kb/en/server-system-variables/#character_set_connection)
    + [character\$1set\$1results](https://mariadb.com/kb/en/server-system-variables/#character_set_results)
    + [character\$1set\$1system](https://mariadb.com/kb/en/server-system-variables/#character_set_system)

    Although the default values have changed for these parameters, there is no functional change. For more information, see [Supported Character Sets and Collations](https://mariadb.com/kb/en/supported-character-sets-and-collations/) in the MariaDB documentation.
  + The default value of the [ collation\$1connection](https://mariadb.com/kb/en/server-system-variables/#collation_connection) parameter has changed from `utf8_general_ci` to `utf8mb3_general_ci`. Although the default value has changed for this parameter, there is no functional change.
  + The default value of the [ old\$1mode](https://mariadb.com/kb/en/server-system-variables/#old_mode) parameter has changed from unset to `UTF8_IS_UTF8MB3`. Although the default value has changed for this parameter, there is no functional change.

For a list of all MariaDB 10.6 features and their documentation, see [Changes and improvements in MariaDB 10.6](https://mariadb.com/kb/en/changes-improvements-in-mariadb-106/) and [Release notes - MariaDB 10.6 series](https://mariadb.com/kb/en/release-notes-mariadb-106-series/) on the MariaDB website. 

For a list of unsupported features, see [MariaDB features not supported by Amazon RDS](MariaDB.Concepts.FeatureNonSupport.md). 

### MariaDB 10.5 support on Amazon RDS
<a name="MariaDB.Concepts.FeatureSupport.10-5"></a>

Amazon RDS supports the following new features for your DB instances running MariaDB version 10.5 or later: 
+ **InnoDB enhancements** – MariaDB version 10.5 includes InnoDB enhancements. For more information, see [ InnoDB: Performance Improvements etc.](https://mariadb.com/kb/en/changes-improvements-in-mariadb-105/#innodb-performance-improvements-etc) in the MariaDB documentation.
+ **Performance schema updates** – MariaDB version 10.5 includes performance schema updates. For more information, see [ Performance Schema Updates to Match MySQL 5.7 Instrumentation and Tables](https://mariadb.com/kb/en/changes-improvements-in-mariadb-105/#performance-schema-updates-to-match-mysql-57-instrumentation-and-tables) in the MariaDB documentation. 
+ **One file in the InnoDB redo log** – In versions of MariaDB before version 10.5, the value of the `innodb_log_files_in_group` parameter was set to `2`. In MariaDB version 10.5, the value of this parameter is set to `1`.

  If you are upgrading from a prior version to MariaDB version 10.5, and you don't modify the parameters, the `innodb_log_file_size` parameter value is unchanged. However, it applies to one log file instead of two. The result is that your upgraded MariaDB version 10.5 DB instance uses half of the redo log size that it was using before the upgrade. This change can have a noticeable performance impact. To address this issue, you can double the value of the `innodb_log_file_size` parameter. For information about modifying parameters, see [Modifying parameters in a DB parameter group in Amazon RDS](USER_WorkingWithParamGroups.Modifying.md). 
+ **SHOW SLAVE STATUS command not supported** – In versions of MariaDB before version 10.5, the `SHOW SLAVE STATUS` command required the `REPLICATION SLAVE` privilege. In MariaDB version 10.5, the equivalent `SHOW REPLICA STATUS` command requires the `REPLICATION REPLICA ADMIN` privilege. This new privilege isn't granted to the RDS master user.

  Instead of using the `SHOW REPLICA STATUS` command, run the new `mysql.rds_replica_status` stored procedure to return similar information. For more information, see [mysql.rds\$1replica\$1status](mysql_rds_replica_status.md).
+ **SHOW RELAYLOG EVENTS command not supported** – In versions of MariaDB before version 10.5, the `SHOW RELAYLOG EVENTS` command required the `REPLICATION SLAVE` privilege. In MariaDB version 10.5, this command requires the `REPLICATION REPLICA ADMIN` privilege. This new privilege isn't granted to the RDS master user.
+ **New default values for parameters** – The following parameters have new default values for MariaDB version 10.5 DB instances:
  + The default value of the [max\$1connections](https://mariadb.com/kb/en/server-system-variables/#max_connections) parameter has changed to `LEAST({DBInstanceClassMemory/25165760},12000)`. For information about the `LEAST` parameter function, see [DB parameter functions](USER_ParamValuesRef.md#USER_ParamFunctions). 
  + The default value of the [ innodb\$1adaptive\$1hash\$1index](https://mariadb.com/kb/en/innodb-system-variables/#innodb_adaptive_hash_index) parameter has changed to `OFF` (`0`).
  + The default value of the [ innodb\$1checksum\$1algorithm](https://mariadb.com/kb/en/innodb-system-variables/#innodb_checksum_algorithm) parameter has changed to `full_crc32`.
  + The default value of the [innodb\$1log\$1file\$1size](https://mariadb.com/kb/en/innodb-system-variables/#innodb_log_file_size) parameter has changed to 2 GB. 

For a list of all MariaDB 10.5 features and their documentation, see [Changes and improvements in MariaDB 10.5](https://mariadb.com/kb/en/changes-improvements-in-mariadb-105/) and [Release notes - MariaDB 10.5 series](https://mariadb.com/kb/en/release-notes-mariadb-105-series/) on the MariaDB website. 

For a list of unsupported features, see [MariaDB features not supported by Amazon RDS](MariaDB.Concepts.FeatureNonSupport.md). 

### MariaDB 10.4 support on Amazon RDS
<a name="MariaDB.Concepts.FeatureSupport.10-4"></a>

Amazon RDS supports the following new features for your DB instances running MariaDB version 10.4 or later: 
+ **User account security enhancements** – [Password expiration](https://mariadb.com/kb/en/user-password-expiry/) and [account locking](https://mariadb.com/kb/en/account-locking/) improvements
+ **Optimizer enhancements** – [Optimizer trace feature](https://mariadb.com/kb/en/optimizer-trace-overview/)
+ **InnoDB enhancements ** – [Instant DROP COLUMN support](https://mariadb.com/kb/en/alter-table/#drop-column) and instant `VARCHAR` extension for `ROW_FORMAT=DYNAMIC` and `ROW_FORMAT=COMPACT` 
+ **New parameters** – Including [tcp\$1nodedelay](https://mariadb.com/kb/en/server-system-variables/#tcp_nodelay), [tls\$1version](https://mariadb.com/kb/en/ssltls-system-variables/#tls_version), and [gtid\$1cleanup\$1batch\$1size](https://mariadb.com/kb/en/gtid/#gtid_cleanup_batch_size)

For a list of all MariaDB 10.4 features and their documentation, see [Changes and improvements in MariaDB 10.4](https://mariadb.com/kb/en/library/changes-improvements-in-mariadb-104/) and [Release notes - MariaDB 10.4 series](https://mariadb.com/kb/en/library/release-notes-mariadb-104-series/) on the MariaDB website. 

For a list of unsupported features, see [MariaDB features not supported by Amazon RDS](MariaDB.Concepts.FeatureNonSupport.md). 

# Supported storage engines for MariaDB on Amazon RDS
<a name="MariaDB.Concepts.Storage"></a>

RDS for MariaDB supports the following storage engines.

**Topics**
+ [

## The InnoDB storage engine
](#MariaDB.Concepts.Storage.InnoDB)
+ [

## The MyRocks storage engine
](#MariaDB.Concepts.Storage.MyRocks)

Other storage engines aren't currently supported by RDS for MariaDB.

## The InnoDB storage engine
<a name="MariaDB.Concepts.Storage.InnoDB"></a>

Although MariaDB supports multiple storage engines with varying capabilities, not all of them are optimized for recovery and data durability. InnoDB is the recommended storage engine for MariaDB DB instances on Amazon RDS. Amazon RDS features such as point-in-time restore and snapshot restore require a recoverable storage engine and are supported only for the recommended storage engine for the MariaDB version.

For more information, see [InnoDB](https://mariadb.com/kb/en/innodb/).

## The MyRocks storage engine
<a name="MariaDB.Concepts.Storage.MyRocks"></a>

The MyRocks storage engine is available in RDS for MariaDB version 10.6 and higher. Before using the MyRocks storage engine in a production database, we recommend that you perform thorough benchmarking and testing to verify any potential benefits over InnoDB for your use case.

The default parameter group for MariaDB version 10.6 includes MyRocks parameters. For more information, see [Parameters for MariaDB](Appendix.MariaDB.Parameters.md) and [Parameter groups for Amazon RDS](USER_WorkingWithParamGroups.md).

To create a table that uses the MyRocks storage engine, specify `ENGINE=RocksDB` in the `CREATE TABLE` statement. The following example creates a table that uses the MyRocks storage engine.

```
CREATE TABLE test (a INT NOT NULL, b CHAR(10)) ENGINE=RocksDB;
```

We strongly recommend that you don't run transactions that span both InnoDB and MyRocks tables. MariaDB doesn't guarantee ACID (atomicity, consistency, isolation, durability) for transactions across storage engines. Although it is possible to have both InnoDB and MyRocks tables in a DB instance, we don't recommend this approach except during a migration from one storage engine to the other. When both InnoDB and MyRocks tables exist in a DB instance, each storage engine has its own buffer pool, which might cause performance to degrade.

MyRocks doesn’t support `SERIALIZABLE` isolation or gap locks. So, generally you can't use MyRocks with statement-based replication. For more information, see [ MyRocks and Replication](https://mariadb.com/kb/en/myrocks-and-replication/).

Currently, you can modify only the following MyRocks parameters:
+ [https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_block_cache_size](https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_block_cache_size)
+ [https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_bulk_load](https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_bulk_load)
+ [https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_bulk_load_size](https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_bulk_load_size)
+ [https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_deadlock_detect](https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_deadlock_detect)
+ [https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_deadlock_detect_depth](https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_deadlock_detect_depth)
+ [https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_max_latest_deadlocks](https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_max_latest_deadlocks)

The MyRocks storage engine and the InnoDB storage engine can compete for memory based on the settings for the `rocksdb_block_cache_size` and `innodb_buffer_pool_size` parameters. In some cases, you might only intend to use the MyRocks storage engine on a particular DB instance. If so, we recommend setting the `innodb_buffer_pool_size minimal` parameter to a minimal value and setting the `rocksdb_block_cache_size` as high as possible.

You can access MyRocks log files by using the [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html) and [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DownloadDBLogFilePortion.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DownloadDBLogFilePortion.html) operations.

For more information about MyRocks, see [MyRocks](https://mariadb.com/kb/en/myrocks/) on the MariaDB website.

# Cache warming for MariaDB on Amazon RDS
<a name="MariaDB.Concepts.XtraDBCacheWarming"></a>

InnoDB cache warming can provide performance gains for your MariaDB DB instance by saving the current state of the buffer pool when the DB instance is shut down, and then reloading the buffer pool from the saved information when the DB instance starts up. This approach bypasses the need for the buffer pool to "warm up" from normal database use and instead preloads the buffer pool with the pages for known common queries. For more information on cache warming, see [ Dumping and restoring the buffer pool](http://mariadb.com/kb/en/mariadb/xtradbinnodb-buffer-pool/#dumping-and-restoring-the-buffer-pool) in the MariaDB documentation.

Cache warming is enabled by default on MariaDB 10.3 and higher DB instances. To enable it, set the `innodb_buffer_pool_dump_at_shutdown` and `innodb_buffer_pool_load_at_startup` parameters to 1 in the parameter group for your DB instance. Changing these parameter values in a parameter group affects all MariaDB DB instances that use that parameter group. To enable cache warming for specific MariaDB DB instances, you might need to create a new parameter group for those DB instances. For information on parameter groups, see [Parameter groups for Amazon RDS](USER_WorkingWithParamGroups.md).

Cache warming primarily provides a performance benefit for DB instances that use standard storage. If you use PIOPS storage, you don't commonly see a significant performance benefit.

**Important**  
If your MariaDB DB instance doesn't shut down normally, such as during a failover, then the buffer pool state isn't saved to disk. In this case, MariaDB loads whatever buffer pool file is available when the DB instance is restarted. No harm is done, but the restored buffer pool might not reflect the most recent state of the buffer pool before the restart. To ensure that you have a recent state of the buffer pool available to warm the cache on startup, we recommend that you periodically dump the buffer pool "on demand." You can dump or load the buffer pool on demand.  
You can create an event to dump the buffer pool automatically and at a regular interval. For example, the following statement creates an event named `periodic_buffer_pool_dump` that dumps the buffer pool every hour.   

```
1. CREATE EVENT periodic_buffer_pool_dump 
2.    ON SCHEDULE EVERY 1 HOUR 
3.    DO CALL mysql.rds_innodb_buffer_pool_dump_now();
```
For more information, see [Events](http://mariadb.com/kb/en/mariadb/stored-programs-and-views-events/) in the MariaDB documentation.

## Dumping and loading the buffer pool on demand
<a name="MariaDB.Concepts.XtraDBCacheWarming.OnDemand"></a>

You can save and load the cache on demand using the following stored procedures:
+ To dump the current state of the buffer pool to disk, call the [mysql.rds\$1innodb\$1buffer\$1pool\$1dump\$1now](mysql-stored-proc-warming.md#mysql_rds_innodb_buffer_pool_dump_now) stored procedure.
+ To load the saved state of the buffer pool from disk, call the [mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1now](mysql-stored-proc-warming.md#mysql_rds_innodb_buffer_pool_load_now) stored procedure.
+ To cancel a load operation in progress, call the [mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1abort](mysql-stored-proc-warming.md#mysql_rds_innodb_buffer_pool_load_abort) stored procedure.

# MariaDB features not supported by Amazon RDS
<a name="MariaDB.Concepts.FeatureNonSupport"></a>

The following MariaDB features are not supported on Amazon RDS:
+ S3 storage engine
+ Authentication plugin – GSSAPI
+ Authentication plugin – Unix Socket
+ AWS Key Management encryption plugin
+ Delayed replication for MariaDB versions lower than 10.6
+ Native MariaDB encryption at rest for InnoDB and Aria

  You can enable encryption at rest for a MariaDB DB instance by following the instructions in [Encrypting Amazon RDS resources](Overview.Encryption.md).
+ HandlerSocket
+ JSON table type for MariaDB versions lower than 10.6
+ MariaDB ColumnStore
+ MariaDB Galera Cluster
+ Multisource replication
+ MyRocks storage engine for MariaDB versions lower than 10.6
+ Password validation plugin, `simple_password_check`, and `cracklib_password_check` for MariaDB versions lower than 11.4 
+ Spider storage engine
+ Sphinx storage engine
+ TokuDB storage engine
+ Storage engine-specific object attributes, as described in [ Engine-defined new Table/Field/Index attributes](http://mariadb.com/kb/en/mariadb/engine-defined-new-tablefieldindex-attributes/) in the MariaDB documentation
+ Table and tablespace encryption
+ Hashicorp Key Management plugin
+ Running two upgrades in parallel

To deliver a managed service experience, Amazon RDS doesn't provide shell access to DB instances, and it restricts access to certain system procedures and tables that require advanced privileges. Amazon RDS supports access to databases on a DB instance using any standard SQL client application. Amazon RDS doesn't allow direct host access to a DB instance by using Telnet, Secure Shell (SSH), or Windows Remote Desktop Connection. 