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:

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

VariableMariaDB 10.0MySQL 5.6Notes
aria_**-The Aria storage engine is only available in MariaDB.
bind_address-127.0.0.1MySQL has the value of the bind-address option as a variable.
binlog-annotate-row-eventsOFF-Introduced in MariaDB 5.3 for replicating between MariaDB 5.3 and MySQL/MariaDB 5.1.
binlog_checksumNONECRC32Specifies the type of BINLOG_CHECKSUM_ALG for log events in the binary log.
binlog_commit_wait_count0-For use in MariaDB's parallel replication.
binlog_commit_wait_usec100000-For use in MariaDB's parallel replication.
binlog_max_flush_queue_time-0MySQL 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_optimize_thread_schedulingON-For optimized kernel thread scheduling.
binlog_order_commits-ONMySQL 5.6-only variable for determining whether transactions may be committed in parallel.
binlog_row_image-ONMySQL 5.6-only variable permitting partial logging.
binlog_rows_query_log_events-OFFMySQL 5.6-only variable for logging extra information in row-based logging.
binlogging_impossible_mode-IGNORE_ERRORMySQL 5.6-only variable, determines what happens if a write to binlog fails.
block_encryption_mode-aes-128-ecbMySQL 5.6-only variable for controlling the block encryption mode for block-based algorithms.
core_file-OFFMySQL 5.6-only variable indicating whether a core file will be written in case of a crash.
deadlock_search_depth_long15-The Aria storage engine is only available in MariaDB
deadlock_search_depth_short4-The Aria storage engine is only available in MariaDB
deadlock_timeout_long50000000-The Aria storage engine is only available in MariaDB
deadlock_timeout_short10000-The Aria storage engine is only available in MariaDB
debug_no_thread_alarmOFF-Disable system thread alarm calls, for debugging or testing
default_master_connectionempty-For use with MariaDB's multi-source replication.
default_regex_flagsempty-For handling incompatibilities between MariaDB's PCRE and the old regex library.
default_tmp_storage_engine-InnoDBAvailable from MariaDB 10.1
disconnect_on_expired_password-ONMySQL 5.6 permits passwords to be expired.
end_markers_in_json-OFFMySQL 5.6-only variable for adding end markers to JSON output
enforce_gtid_consistency-OFFMariaDB and MySQL have different GTID implementations.
eq_range_index_dive_limit-10MySQL 5.6-only variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
expensive_subquery_limit100-Used for determining expensive queries for optimization.
explicit_defaults_for_timestamp-FALSEMySQL 5.6-only variable for handling TIMESTAMP defaults in a standard way.
extra_max_connections1-Introduced in the MariaDB 5.1 threadpool.
extra_port0-Introduced in the MariaDB 5.1 threadpool.
gtid_binlog_posempty-MariaDB and MySQL have different GTID implementations.
gtid_binlog_stateempty-MariaDB and MySQL have different GTID implementations.
gtid_current_posempty-MariaDB and MySQL have different GTID implementations.
gtid_domain_id0-MariaDB and MySQL have different GTID implementations.
gtid_executed-emptyMariaDB and MySQL have different GTID implementations.
gtid_ignore_duplicatesOFF-MariaDB and MySQL have different GTID implementations.
gtid_mode-OFFMariaDB and MySQL have different GTID implementations.
gtid_next-AUTOMATICMariaDB and MySQL have different GTID implementations.
gtid_owned-emptyMariaDB and MySQL have different GTID implementations.
gtid_purged-emptyMariaDB and MySQL have different GTID implementations.
gtid_seq_no0-MariaDB and MySQL have different GTID implementations.
gtid_slave_posempty-MariaDB and MySQL have different GTID implementations.
gtid_strict_modeOFF-MariaDB and MySQL have different GTID implementations.
have_opensslMariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
histogram_size0-MariaDB introduced Histogram-based Statistics.
histogram_typeSINGLE_PREC_HB-MariaDB introduced Histogram-based Statistics.
host_cache_size128279 (autosized)MySQL increments the value based on the size of max_connections.
in_transaction0-Set to 1 if you are in a transaction, and 0 if not.
innodb_***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.
join_buffer_size131072 (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.
join_buffer_space_limit2097152-Maximum size in bytes of the query buffer. See block-based join algorithms.
join_cache_level2-For determining the join algorithms. See block-based join algorithms
key_buffer_size1342177288388608Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
key_cache_segments0-The number of segments in a key cache. See Segmented Key Cache.
last_gtid-emptyMariaDB and MySQL have different GTID implementations.
log_bin_basename-emptyMySQL-only variable containing the complete path to the binary log file.
log_bin_index-emptyMySQL-only variable containing the index file for binary log file names.
log_bin_use_v1_row_events-OFFMySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
log_slow_admin_statements-OFFMySQL-only variable determining whether or not to include slow admin statements in the slow query log.
log_slow_filteradmin, 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_rate_limit1-Limits the number of queries logged to the slow query log.
log_slow_slave_statements-OFFMySQL-only variable determining whether or not to include slow slave statements in the slow query log.
log_slow_verbosityempty-Controls information to be added to the slow query log. See also Slow Query Log Extended Statistics.
log_throttle_queries_not_using_indexes-0MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
master_info_repository-FILEMySQL-only variable determining whether the slaves log info to file or table.
max_allowed_packet10485764194304Maximum size in bytes of a packet or a generated/intermediate string. Increased in MySQL 5.6.6 to 4MB.
max_long_data_size1048576-Maximum size for parameter values sent with mysql_stmt_send_long_data(). Removed in MySQL 5.6.
max_relay_log_size10737418240Can be set by session in MariaDB.
max_seeks_for_key42949672954294967295 (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.
max_write_lock_count42949672954294967295 (32-bit) or 18446744073709547520 (64-bit)Read lock requests will be permitted for processing after this many write locks.
mrr_buffer_size262144-Size of buffer to use when using multi-range read with range access. See Multi Range Read optimization.
myisam_block_size1024-Block size used for MyISAM index pages.
myisam_recover_optionsDEFAULTOFFMyISAM recovery mode.
myisam_sort_buffer_size1342167048388608Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
new-OFFUsed for backward-compatibility with MySQL 4.1, not present in MariaDB
old_modeEmpty string-Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See OLD Mode.
optimizer_selectivity_sampling_limit100-Controls number of record samples to check condition selectivity.
optimizer_switchSee detailsA series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace-Off by defaultMySQL 5.6-only variable for optimizer tracing.
optimizer_trace_features-Off by defaultMySQL 5.6-only variable for optimizer tracing.
optimizer_trace_limit-1MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_max_mem_size-16384MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_offset--1MySQL 5.6-only variable for optimizer tracing.
optimizer_use_condition_selectivity1-Controls which statistics can be used by the optimizer when looking for the best query execution plan.
performance_schemaOFFONThe Performance Schema is off by default in MariaDB.
performance_schema_*Many performance schema variables are autoset in MySQL.
plugin_maturityunknown-Minimum acceptable plugin maturity.
progress_report_time5-Time in seconds between sending progress reports to the client for time-consuming statements.
query_cache_size01048576MySQL and MariaDB disable the query cache by default in different manners.
query_cache_strip_commentsOFF-Whether to strip any comments from the query before searching to see if it exists in the query cache.
query_cache_typeONOFFMySQL and MariaDB disable the query cache by default in different manners.
relay_log_basename-emptyMySQL-only variable containing the complete path to the relay log file.
relay_log_info_repository-FILEMySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
replicate_annotate_row_eventsOFF-Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
replicate_do_dbempty string-See Dynamic Replication Variables.
replicate_do_tableempty string-See Dynamic Replication Variables.
replicate_events_marked_for_skipreplicate-See Selectively skipping replication of binlog events.
replicate_ignore_dbempty string-See Dynamic Replication Variables.
replicate_ignore_tableempty string-See Dynamic Replication Variables.
replicate_wild_do_tableempty string-See Dynamic Replication Variables.
replicate_wild_ignore_tableempty string-See Dynamic Replication Variables.
rowid_merge_buff_size8388608-See Non-semi-join subquery optimizations.
rpl_recovery_rank0-Unused, removed in MySQL 5.6.
rpl_stop_slave_timeout-31536000MySQL-only variable for controlling the time that STOP SLAVE waits before timing out.
secure_authOFFONMySQL 5.6 prohibits connections from clients using the old (pre-MySQL 4.1) password format.
server_id_bits-server_idMySQL-only variable for use in MySQL Cluster.
server_uuid-UUIDMySQL-only variable containing the UUID.
skip_replicationOFF-See Selectively skipping replication of binlog events.
slave_allow_batching-OFFMySQL-only replication variable.
slave_checkpoint_group-512MySQL-only replication variable.
slave_checkpoint_period-300MySQL-only replication variable.
slave_ddl_exec_modeIDEMPOTENT-Modes for how replication of DDL events should be executed.
slave_domain_parallel_threads0-For configuring parallel replication.
slave_parallel_max_queued131072-For configuring parallel replication.
slave_parallel_threads0-For configuring parallel replication.
slave_parallel_workers-0MySQL-only replication variable.
slave_pending_jobs_size_max-16777216MySQL-only replication variable.
slave_rows_search_algorithms-TABLE_SCAN, INDEX_SCANMySQL-only replication variable.
sort_buffer_size2097152262144The default sort buffer allocated has been reduced in MySQL.
sql_modeemptyNO_ENGINE_SUBSTITUTIONMySQL 5.6 does not permit tables to be created in the default storage engine if the original is not available. See SQL Mode.
sync_master_info010000MariaDB relies upon the operating system to flush the master.info file to disk.
sync_relay_log010000MariaDB relies upon the operating system to flush the relay log to disk.
sync_relay_log_info010000MariaDB relies upon the operating system to flush the relay-log.info file to disk.
table_definition_cache400-1 (autosized)Number of table definitions that can be cached.
table_open_cache400-1 (autosized)Number of open tables for all threads. See Optimizing table_open_cache.
table_open_cache_instances-1Removed in MariaDB as similar results achieved in a different way.
thread_cache_size0-1 (autosized)MariaDB uses an improved thread pool.
thread_pool_idle_timeout60-See Using the Thread Pool in MariaDB 5.5.
thread_pool_max_threads500-See Using the Thread Pool in MariaDB 5.5.
thread_pool_min_threads1-Windows-only. See Using the Thread Pool in MariaDB 5.5.
thread_pool_oversubscribe3-See Using the Thread Pool in MariaDB 5.5.
thread_pool_sizeNumber of processors16*See Using the Thread Pool in MariaDB 5.5. *Only available in MySQL with a commercial plugin.
thread_pool_stall_limit5006*See Using the Thread Pool in MariaDB 5.5. *Only available in MySQL with a commercial plugin.
thread_stack294912196608 or 262144See Using the Thread Pool in MariaDB 5.5.
transaction_allow_batching-OFFMySQL-only variable for enabling batching of statements within the same transaction in MySQL Cluster.
use_stat_tablesNEVER-Controls the use of engine-independent table statistics.
userstatOFF-Whether to activate MariaDB's User Statistics implementation, not available in MySQL.
version_malloc_librarybundled_jemalloc-Version of the used malloc library.
VariableMariaDB 10.0MySQL 5.6Notes

See Also

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.