The following is a comparison of variables that either appear only in MariaDB 10.2 or MySQL 5.6, or have different default settings in MariaDB 10.2, and MySQL 5.6. MariaDB 10.2.19 and MySQL 5.6.27, with only default plugins enabled, were used for the comparison.
The most notable differences are that MariaDB includes, by default, the storage engine (resulting in extra memory allocation), Galera Cluster and has a different . For this reason, a default implementation of MariaDB 10.2 will use more memory than MySQL 5.6. MariaDB 10.2 and MySQL 5.6 also have different .
MariaDB's extra memory usage can be handled with the following rules of thumb:
If you are not using and don't plan to use :
Set to something very low (16K) as it's not used.
Set 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 (at least 1M).
If you are using and not planning to use :
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
If you are planning to use , you should set to something that fits a big part of your normal data + overflow temporary tables.
OFF
-
Introduced in for between and MySQL/.
NONE
CRC32
Specifies the type of BINLOG_CHECKSUM_ALG for log events in the .
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
IGNORE_ERROR
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
binlog_gtid_simple_recovery
-
OFF
MySQL 5.6-only GTID variable. MariaDB's implementation is different.
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.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
MySQL 5.6-only variable for determining whether transactions may be committed in parallel.
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.
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disconnect_on_expired_password
-
ON
MySQL 5.6 permits passwords to be expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL 5.6-only variable for adding end markers to JSON output
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
10
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
100
-
Used for determining expensive queries for optimization.
1
-
Introduced in the .
0
-
Introduced in the .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
0
-
MariaDB introduced .
SINGLE_PREC_HB
-
MariaDB introduced .
0
-
Set to 1 if you are in a transaction, and 0 if not.
*
*
The list of differences between and MySQL 5.6 Innodb variables is currently incomplete.
ON
-
Whether redo logging should be reduced when natively creating indexes or rebuilding tables
ON
-
Use a backup-safe implementation and crash-safe rename operations inside InnoDB.
2097152
-
Maximum size in bytes of the query buffer. See ..
2
-
For determining the join algorithms. See .
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
-
empty
MariaDB and MySQL have different .
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
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.
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.
1
-
Limits the number of queries logged to the .
empty
-
Controls information to be added to the . See also .
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
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.
4194304
-
Maximum size for parameter values sent with mysql_stmt_send_long_data(). Removed in MySQL 5.6.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
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.
0
-
Maximum time in seconds that a query can execute before being aborted.
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 .
1024
-
Block size used for index pages.
DEFAULT
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the + version.
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 .
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.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL.
unknown
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up). The MariaDB default was increased to 16384 in 10.1.2.
OFF
-
Whether to strip any comments from the query before searching to see if it exists in the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect. The MariaDB default was increased to 24576 in 10.1.2.
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.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
8388608
-
See .
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.
ON
-
Whether to track changes to the default schema within the current session.
OFF
-
Whether to track changes to the session state.
(empty)
-
Comma-separated list of session system variables for which to track changes.
OFF
-
Whether to track changes to the transaction attributes.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
simplified_binlog_gtid_recovery
-
OFF
MySQL-only variable, deprecated shortly after it appeared.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
131072
-
For configuring .
conservative
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_rows_search_algorithms
-
TABLE_SCAN, INDEX_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
NO_ENGINE_SUBSTITUTION
MariaDB does not automatically create users with . See .
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
400
-1 (autosized)
Number of table definitions that can be cached.
400
-1 (autosized)
Number of open tables for all threads. See .
8
1
Maximum number of table cache instances in MariaDB. This is different to the MySQL version which specifies the number of table cache instances.
0
-1 (autosized)
MariaDB uses an .
60
-
See .
1000
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
295936
196608 or 262144
See .
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
MySQL-only variable for enabling batching of statements within the same transaction in MySQL Cluster.
NEVER
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
bundled_jemalloc
-
Version of the used malloc library.
-
is only available in MariaDB.
Variable
MySQL 5.6
Notes
Variable
MySQL 5.6
Notes
*
-
The Aria storage engine is only available in MariaDB.
avoid_temporal_upgrade
-
OFF
MySQL 5.6-only variable for determining whether ALTER TABLE implicitly upgrades temporal columns.
-
127.0.0.1
MySQL has the value of the bind-address option as a variable.