System Variable Differences Between MariaDB 10.0 and MySQL 5.6
The following is a comparison of variables that either appear only in MariaDB 10.0 or MySQL 5.6, or have different default settings in MariaDB 10.0, and MySQL 5.6. MariaDB 10.0.12 and MySQL 5.6.20, with only default plugins enabled, were used for the comparison.
The most notable differences are that MariaDB includes, by default, the Aria storage engine (resulting in extra memory allocation), uses Percona's XtraDB instead of Oracle's InnoDB, and has a different thread pool implementation. For this reason, a default implementation of MariaDB 10.0 will use more memory than MySQL 5.6. MariaDB 10 and MySQL 5.6 also have different GTID implementations.
MariaDB's extra memory usage can be handled with the following rules of thumb:
If you are not using MyISAM and don't plan to use Aria:
Set key_buffer_size to something very low (16K) as it's not used.
Set aria_pagecache_buffer_size to what you think you need for handling internal tmp tables that didn't fit in memory.
Normally this is what before you had set for key_buffer_size (at least 1M).
If you are using MyISAM and not planning to use Aria:
Set aria_pagecache_buffer_size to what you think you need for handling internal tmp tables that didn't fit in memory.
If you are planning to use Aria, you should set aria_pagecache_buffer_size to something that fits a big part of your normal data + overflow temporary tables.
The large number of differences between MySQL's and MariaDB's default innodb* variables (based upon InnoDB/XtraDB differences) are not listed here. Details can be found on the MariaDB versus MySQL - Compatibility page.
Comparison Table
binlog_max_flush_queue_time
-
0
MySQL 5.6-only variable specifying a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
binlog_order_commits
-
ON
MySQL 5.6-only variable for determining whether transactions may be committed in parallel.
binlog_row_image
-
ON
MySQL 5.6-only variable permitting partial logging.
binlog_rows_query_log_events
-
OFF
MySQL 5.6-only variable for logging extra information in row-based logging.
binlogging_impossible_mode
-
IGNORE_ERROR
MySQL 5.6-only variable, determines what happens if a write to binlog fails.
block_encryption_mode
-
aes-128-ecb
MySQL 5.6-only variable for controlling the block encryption mode for block-based algorithms.
core_file
-
OFF
MySQL 5.6-only variable indicating whether a core file will be written in case of a crash.
disconnect_on_expired_password
-
ON
MySQL 5.6 permits passwords to be expired.
end_markers_in_json
-
OFF
MySQL 5.6-only variable for adding end markers to JSON output
eq_range_index_dive_limit
-
10
MySQL 5.6-only variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
explicit_defaults_for_timestamp
-
FALSE
MySQL 5.6-only variable for handling TIMESTAMP defaults in a standard way.
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
*
*
The large number of differences between MySQL's and MariaDB's default innodb* variables (based upon InnoDB/XtraDB differences) are not listed here. Details can be found on the MariaDB versus MySQL - Compatibility page.
131072 (128KB)
262144 (256KB)
Minimum size of the buffer used for queries that cannot use an index, and instead perform a full table scan. MariaDB's default is sufficient for most users.
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
log_bin_basename
-
empty
MySQL-only variable containing the complete path to the binary log file.
log_bin_index
-
empty
MySQL-only variable containing the index file for binary log file names.
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
log_slow_admin_statements
-
OFF
MySQL-only variable determining whether or not to include slow admin statements in the slow query log.
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
log_slow_slave_statements
-
OFF
MySQL-only variable determining whether or not to include slow slave statements in the slow query log.
empty
-
Controls information to be added to the slow query log. See also Slow Query Log Extended Statistics.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
master_info_repository
-
FILE
MySQL-only variable determining whether the slaves log info to file or table.
1048576
4194304
Maximum size in bytes of a packet or a generated/intermediate string. Increased in MySQL 5.6.6 to 4MB.
1048576
-
Maximum size for parameter values sent with mysql_stmt_send_long_data(). Removed in MySQL 5.6.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See Multi Range Read optimization.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See OLD Mode.
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace
-
Off by default
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_features
-
Off by default
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_limit
-
1
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_max_mem_size
-
16384
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_offset
-
-1
MySQL 5.6-only variable for optimizer tracing.
1
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
OFF
-
Whether to strip any comments from the query before searching to see if it exists in the query cache.
relay_log_basename
-
empty
MySQL-only variable containing the complete path to the relay log file.
relay_log_info_repository
-
FILE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
OFF
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
rpl_stop_slave_timeout
-
31536000
MySQL-only variable for controlling the time that STOP SLAVE waits before timing out.
OFF
ON
MySQL 5.6 prohibits connections from clients using the old (pre-MySQL 4.1) password format.
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
slave_parallel_workers
-
0
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_rows_search_algorithms
-
TABLE_SCAN, INDEX_SCAN
MySQL-only replication variable.
empty
NO_ENGINE_SUBSTITUTION
MySQL 5.6 does not permit tables to be created in the default storage engine if the original is not available. See SQL Mode.
0
10000
MariaDB relies upon the operating system to flush the master.info file to disk.
0
10000
MariaDB relies upon the operating system to flush the relay-log.info file to disk.
Number of processors
16*
See Using the Thread Pool in MariaDB 5.5. *Only available in MySQL with a commercial plugin.
transaction_allow_batching
-
OFF
MySQL-only variable for enabling batching of statements within the same transaction in MySQL Cluster.
See Also
Last updated
Was this helpful?