Details
-
New Feature
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
Some of the features in MariaDB are only usable (from performance point of view) in special circumstances:
- QUERY_CACHE should no be used with tables that changes values very frequently
- InnoDB adaptive_hash_index does not work well if there is changes in the rows that are part if an active adaptive_hash
- Statement based binary logging is not optimal for tables that does updates where the master has to scan a lot but only updates a few or inserts of many rows with generated auto-increments.
This MDEV is about fixing this issue by adding new table specific options where the user can enable/disable the options per table.
All table optimization should have the 3 values: ON, OFF and DEFAULT. 'DEFAULT' is needed to be able to remove the option from being stored in the table definition.
The suggested new table options are:
Option | Effect |
---|---|
QUERY_CACHE | Having this option OFF is the same as using SELECT SQL_NO_CACHE for any query using this table. Having this option ON is same as using SELECT SQL_CACHE for this table and the query will be cached if no other table has QUERY_CACHE=OFF |
ADAPTIVE_HASH_INDEX | Having this option OFF will disable InnoDB adaptive hash index for this table. Having it ON will enable adaptive hash index for the table if adaptive hash indexes are enabled at all |
BINLOG_ROW | If this option is ON for any table, row based binary logging will be used |