Release Notes for MariaDB Enterprise Server 23.07.0
This page is part of MariaDB's Documentation.
The parent of this page is: Release Notes for MariaDB Enterprise Server 23.07
Topics on this page:
Overview
MariaDB Enterprise Server 23.07.0 is the first Technical Preview release of MariaDB Enterprise Server 23.07. This release contains a variety of new features.
Software in technical preview is not recommended for production workloads.
MariaDB Enterprise Server 23.07.0 was released on 2023-07-27.
Changes in Storage Engines
This release incorporates MariaDB Enterprise ColumnStore 23.02.4.
With InnoDB storage engine, system variable changes provide improved control of log files and data files: (MDEV-30136)
The
innodb_log_file_buffering
andinnodb_log_file_write_through
system variables have been added for log file control. These system variables are boolean and can be set dynamically while the server is running.The
innodb_data_file_buffering
andinnodb_data_file_write_through
system variables have been added for data file control. These system variables are boolean and can be set dynamically while the server is running.The
innodb_flush_method
system variable has been deprecated and removed.
With InnoDB storage engine, performance of bulk inserts is improved. (MDEV-25036)
With InnoDB storage engine, changes to the InnoDB redo log format reduce write amplification, which can result in better performance. (MDEV-14425)
With InnoDB storage engine, the InnoDB change buffer has been removed: (MDEV-29694)
With modern storage speeds, the InnoDB change buffer tends to add more overhead, rather than providing a performance gain.
The removal of the InnoDB change buffer also simplifies the internal recovery process.
The
innodb_change_buffering
andinnodb_change_buffer_max_size
system variables have been removed.The
Innodb_ibuf_discarded_delete_marks
,Innodb_ibuf_discarded_deletes
,Innodb_ibuf_discarded_inserts
,Innodb_ibuf_free_list
,Innodb_ibuf_merged_delete_marks
,Innodb_ibuf_merged_deletes
,Innodb_ibuf_merged_inserts
,Innodb_ibuf_merges
,Innodb_ibuf_segment_size
, andInnodb_ibuf_size
status variables have been removed.
With InnoDB storage engine, the Prefix Index Queries Optimization is always used: (MDEV-28540)
This feature was originally implemented as an optional optimization in MariaDB Server 10.1.
The
Innodb_secondary_index_triggered_cluster_reads
andInnodb_secondary_index_triggered_cluster_reads_avoided
status variables have been removed.
With InnoDB storage engine, multiple undo tablespaces are now enabled by default, so that the default configuration enables undo logs to be truncated while the server is running: (MDEV-29986)
Truncation does not apply to undo logs in the system tablespace.
innodb_undo_tablespaces
default changed from0
to3
.To reclaim space,
innodb_undo_log_truncate=ON
must be setinnodb_undo_log_truncate=ON
can have a performance impact for some workloads. In those cases, undo truncation can be enabled by temporarily setting the following:SET GLOBAL innodb_undo_log_truncate=ON;
With Spider storage engine, engine-defined attributes (table options) are accepted. Previously, Spider required parameters to be provided via
COMMENT
for a table: (MDEV-27106)New Table Option
Old
COMMENT
OptionDescription
REMOTE_DATABASE
database
The remote database that contains the remote table
REMOTE_SERVER
srv
The IP address or hostname of the remote server that contains the remote table
REMOTE_TABLE
tbl
The remote table
Spider storage engine system variable defaults have changed.
With MyRocks storage engine, log files can be stored in a user-defined directory specified by the
rocksdb_log_dir
system variable. (MDEV-27791)
Compatibility Enhancements
Stored function parameters can be qualified with
IN
,OUT
,INOUT
, andIN OUT
: (MDEV-10654)When a parameter is qualified with
IN
, a value is passed to the function.When a parameter is qualified with
OUT
, the function returns a value to the caller.When a parameter is qualified with
INOUT
orIN OUT
, a value is passed to the function, and the function also returns a value to the caller.OUT
,INOUT
, andINOUT
can only be used when called fromSET
and not when called fromSELECT
OUT
,INOUT
, andINOUT
allow a function to return more than one value, which allows for more complex and nested functions.In previous releases, the qualifiers were supported for stored procedures, but not for stored functions.
Starting with this release, the qualifiers are accepted in stored functions using the same syntax previously used for stored procedures.
When
sql_mode=ORACLE
is set, the behavior is adjusted to match the behavior of Oracle.
Changed default behavior for
TIMESTAMP
field properties: (MDEV-28632)Previous to this release, implementation-specific behavior was present by default for the first
TIMESTAMP
column in a table. This behavior addedDEFAULT current_timestamp() ON UPDATE current_timestamp()
to theTIMESTAMP
field properties.Starting this release, the implementation-specific behavior for
TIMESTAMP
field properties is disabled by default. The default value of theexplicit_defaults_for_timestamp
system variable is changed toOFF
As a result of this change, new
TIMESTAMP
columns without explicit default values will be created withDEFAULT NULL
Operational Enhancements
For
INSERT
operations that insert multiple rows, error reporting has been improved: (MDEV-10075)In
GET DIAGNOSTICS
, theROW_NUMBER
property allows retrieval of the row number that caused the error or warning:GET DIAGNOSTICS CONDITION 1 @failed_row=ROW_NUMBER;
Information Schema system table optimizations: (MDEV-20609)
When
PARAMETERS
is queried and theWHERE
clause filters onSPECIFIC_SCHEMA
andSPECIFIC_NAME
, an index is used to avoid a full table scan.When
ROUTINES
is queried and theWHERE
clause filters onROUTINE_SCHEMA
andROUTINE_NAME
, an index is used to avoid a full table scan.
SHOW EXPLAIN FOR CONNECTION_ID
can show the query plan for a query running in another connection: (MDEV-25956)SHOW EXPLAIN FOR 1;
The statement returns the query itself as a warning, which can be obtained via
SHOW WARNINGS
.
SHOW ANALYZE [FORMAT=JSON] FOR CONNECTION_ID
can analyze a query running in another connection: (MDEV-27021)SHOW ANALYZE FOR 1;
ANALYZE FORMAT=JSON
now shows the time spent in the query optimizer. (MDEV-28926)With
mariadb-dump
, the new--order-by-size
command-line option allows tables to be dumped in order of size (smallest tables first): (MDEV-28074)$ mariadb-dump \ --user=USER \ --password='PASSWORD' \ --all-databases \ --single-transaction \ --order-by-size
This new option is useful when the
--single-transaction
command-line option is specified and the backup contains tables that are truncated frequently. Since tables that are truncated frequently tend to be smaller, those tables will be backed up earlier, which reduces the chance that the backup will fail with theER_TABLE_DEF_CHANGED
error code.
The
transaction_isolation
system variable can now be used to set the transaction isolation: (MDEV-21921)The
tx_isolation
system variable is still available as an alias, but it has been deprecated and will be removed in a later release.
The
transaction_read_only
system variable can now be used to set a transaction to read-only. (MDEV-21921)
Optimizer
MariaDB Query Optimizer performs cost-based optimizations with an understanding of storage engine-specific costs: (MDEV-26974)
The query optimizer now defaults to assume SSD storage is used. Costs for disk access can be overridden.
Optimizer costs can be tuned by setting the following system variables via configuration file, command-line parameter, or the
SET
SQL statement:System Variable
Type
Description
Engine
Sets the time in microseconds required to read a 4K block from storage. The default value is tuned for an SSD reading at 400 MB/second.
Engine
Sets the cost to lock a block in the global cache and copy it to the local cache. The cost applies to every block accessed, regardless of whether the block is already cached.
Engine
Sets the cost to compare two key values.
Engine
Sets the cost to copy a key value from the index to the local buffer while searching for a key value.
Engine
Sets the cost to find a key entry in the index.
Engine
Sets the cost to find the next key entry in the index.
Engine
Sets the cost to compare two
rowid
values.Engine
Sets the cost to copy a
rowid
from the index.Engine
Sets the cost to find a row based on the
rowid
. Therowid
is stored in the index with the key.Engine
Sets the cost to find the next row.
Session
Sets the cost to start a table or index scan. The default low value configures the optimizer to use index lookups for tables with very few rows.
Session
Sets the cost to execute the
WHERE
clause for every row found. As this value is increases, the optimizer is more likely to choose plans which read fewer rows.Optimizer costs can be tuned per storage engine by prefixing the system variable with the storage engine name.
Current optimizer costs for each storage engine can be queried via
information_schema.OPTIMIZER_COSTS
For JOIN with many
eq_ref
tables, query performance is improved: (MDEV-28852)New system variable
optimizer_extra_pruning_depth
Default changed for system variable
optimizer_prune_level
from1
to2
to enable prune join prefixesNew status variable
Optimizer_join_prefixes_check_calls
An index can now be used when comparing the return value of the
DATE()
function to a constant value. (MDEV-8320)Single-table
UPDATE
andDELETE
can now benefit from semi-join optimization. (MDEV-7487)JSON histograms with detailed histogram collection: (MDEV-26519)
Enabled when
histogram_type=JSON_HB
is set, which is now the default.JSON histograms result in more precise data statistics for string data types or when columns have highly-uneven data distribution.
With more precise data statistics the optimizer can create better query plans, resulting in faster queries.
Partitioning
A table can be converted into a partition with
ALTER TABLE .. CONVERT TABLE .. TO PARTITION
: (MDEV-22165)ALTER TABLE partitioned_tab CONVERT TABLE tab1 TO PARTITION part_name VALUES LESS THAN (1000000);
The
ALTER TABLE .. CONVERT TABLE .. TO PARTITION
operation was previously backported to MariaDB Enterprise Server 10.6.11-6.
A partition can be converted into a table with
ALTER TABLE .. CONVERT PARTITION .. TO TABLE
: (MDEV-22166)ALTER TABLE partitioned_tab CONVERT PARTITION part_name TO TABLE tab1;
The
ALTER TABLE .. CONVERT PARTITION .. TO TABLE
operation was previously backported to MariaDB Enterprise Server 10.6.11-6.
CREATE TABLE
syntax has been extended, so thePARTITION
keyword is optional in each partition definition: (MDEV-26471)CREATE TABLE partitioned_tab ( col1 int ) PARTITION BY RANGE(col1) ( part1 VALUES LESS THAN (1000000), part2 VALUES LESS THAN (2000000), part3 VALUES LESS THAN (3000000), part4 VALUES LESS THAN (4000000), part5 VALUES LESS THAN (5000000), part_end VALUES LESS THAN MAXVALUE );
Engine-defined attributes can be defined per-partition: (MDEV-5271)
CREATE TABLE remote_spider_tab ( id INT, str VARCHAR(255), PRIMARY KEY(id) ) ENGINE=Spider PARTITION BY RANGE(id) ( PARTITION east_part VALUES LESS THAN (100) REMOTE_SERVER="mdb-east.example.org" REMOTE_TABLE="tab1", PARTITION west_part VALUES LESS THAN MAXVALUE REMOTE_SERVER="mdb-west.example.org", REMOTE_TABLE="tab1" );
System Versioning
History partition creation can be automated using the
AUTO
keyword when partitioned byINTERVAL
orLIMIT
: (MDEV-17554)CREATE TABLE t1 (x int) WITH SYSTEM VERSIONING PARTITION BY system_time INTERVAL 1 months AUTO;
In the above example, a new history partition to store historical row versions is created on a monthly basis.
mariadb-dump
can backup historical data from system-versioned tables if the--dump-history
command-line option is specified. (MDEV-16029)mariadb-dump
can perform a dump of historical data as of a point in time if the--as-of
command-line option is specified. (MDEV-16355)The
--as-of
command-line option was previously backported to MariaDB Enterprise Server 10.4.25-16, 10.5.16-11, and 10.6.8-4.
SQL Level Enhancements
Indexes
Descending indexes are supported: (MDEV-13756)
When used with a composite index, can be used to get a significant performance boost for queries that perform
ORDER BY
operations on columns in different orders than the defined order.In previous releases, MariaDB Enterprise Server already supported the
DESC
option forORDER BY
, but the optimizer would use the ascending index. For a composite index, the optimizer would have to use an index and perform a file sort.For example, using the following example table:
CREATE TABLE sections ( top_level int, sub_level int, index top_asc_sub_asc (top_level ASC, sub_level ASC), index top_asc_sub_desc (top_level ASC, sub_level DESC), index top_desc_sub_asc (top_level DESC, sub_level ASC), index top_desc_sub_desc (top_level DESC, sub_level DESC) ); INSERT INTO sections VALUES (1, 1), (1, 2), (2, 1), (2, 2), (3, 1), (3, 2), (3, 3);
Performing an
ORDER BY .. ASC
on multiple columns still shows"Using index"
in theEXPLAIN
output:EXPLAIN SELECT * FROM sections ORDER BY top_level ASC, sub_level ASC;
+------+-------------+----------+-------+---------------+-----------------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +------+-------------+----------+-------+---------------+-----------------+---------+------+------+-------------+ | 1 | SIMPLE | sections | index | NULL | top_asc_sub_asc | 10 | NULL | 7 | Using index | +------+-------------+----------+-------+---------------+-----------------+---------+------+------+-------------+
With this change, performing a mix of
ORDER BY .. ASC, .. DESC
on multiple columns also shows"Using index"
in theEXPLAIN
output:EXPLAIN SELECT * FROM sections ORDER BY top_level ASC, sub_level DESC;
+------+-------------+----------+-------+---------------+------------------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +------+-------------+----------+-------+---------------+------------------+---------+------+------+-------------+ | 1 | SIMPLE | sections | index | NULL | top_asc_sub_desc | 10 | NULL | 7 | Using index | +------+-------------+----------+-------+---------------+------------------+---------+------+------+-------------+
JSON
JSON_EQUALS()
can be used to compare two documents and determine if they are equal. (MDEV-16375)The
JSON_EQUALS()
function was previously backported to MariaDB Enterprise Server 10.4.25-16, 10.5.16-11, and 10.6.8-4.
JSON_NORMALIZE()
can be used to normalize two JSON documents to make them more comparable. (MDEV-23143)For example, this function can be used when defining a unique key on JSON data.
The
JSON_NORMALIZE()
function was previously backported to MariaDB Enterprise Server 10.4.25-16, 10.5.16-11, and 10.6.8-4.
JSON_OVERLAPS()
can be used to compare two JSON documents to determine if they have any key-value pairs or array elements in common. (MDEV-27677)SELECT JSON_OVERLAPS('{"A": 1, "B": {"C":2}}', '{"A": 2, "B": {"C":2}}') AS is_overlap;
+---------------------+ | is_overlap | +---------------------+ | 1 | +---------------------+
JSON_SCHEMA_VALID()
can be used to validate a JSON document against a JSON schema, as documented by the JSON Schema Draft 2020. (MDEV-27128)This function can also be used in a
CHECK
constraint to verify that JSON documents are only stored in the database if they include required items and that the values are within a given range and length.
Negative indexes can be used to access values in JSON arrays relative to the end of the array when a JSON Path expression is used as a parameter to a JSON function. (MDEV-22224)
SELECT JSON_REMOVE(@json, '$.A[-10]')
The
last
index can be used to access the last value in a JSON array when a JSON Path expression is used as a parameter to a JSON function. (MDEV-22224)SELECT JSON_REMOVE(@json, '$.A[last]');
A range of indexes can be used to access the values in that range in a JSON array when a JSON Path expression is used as a parameter to a JSON function. (MDEV-27911)
SELECT JSON_REMOVE(@json, '$.A[1 to 3]');
Data Types
UUID
data type is added to store UUIDs more efficiently. (MDEV-4958)The
UUID
data type was previously backported to MariaDB Enterprise Server 10.6.9-5.
INET4
data type is added to store IPv4 addresses as BINARY(4), where each byte stores one octet. (MDEV-23287)The data type provides the following functionality:
Validation of incorrect values
Comparisons
Sorting
Functions like
CAST()
Functions
RANDOM_BYTES()
returns a binary string of a length between 1 and 1024 bytes. (MDEV-25704)This nondeterministic value is generated by the cryptographically secure pseudo random generator (CSPRNG) of the SSL library, so it generates an arbitrary length string of cryptographic random bytes that are suitable for cryptographic use.
NATURAL_SORT_KEY()
can be used to perform a natural sort of strings. (MDEV-4742)Characters are sorted in alphabetical order, whereas numbers are sorted, such that "10" is greater than "9".
For example, "v10" would appear after the string "v9".
SFORMAT()
formats strings based on the specified options and values to generate a custom formatted string. (MDEV-25015)SELECT SFORMAT("MariaDB version {}", VERSION());
This function uses the
fmtlib
library for string formatting similar to Python, Rust, C++20.
CRC32()
computes a cyclic redundancy check (CRC) as a 32-bit unsigned value using the ISO 3309 polynomial. (MDEV-27208)The CRC can now be computed in pieces, using an optional second parameter:
CRC32('String')
is equal toCRC32(CRC32('Str','ing'))
.CRC32C()
can be used to compute checksums using the alternate Castagnoli polynomial.
Character Sets and Collations
Collations based on the Unicode Collation Algorithm (UCA) 14.0.0 have been added for the character sets
utf8mb3
,utf8mb4
,ucs2
,utf16
, andutf32
: (MDEV-27009)One neutral and 22 language specific collations have been added.
Accent sensitive, accent insensitive, case sensitive, case insensitive, no-pad variants have been added.
Collation names for new UCA 14.0.0 collations can be specified without the character set prefix, because the character set prefix can be automatically detected from the context. For example,
uca1400_german_as_ci
can be specified instead ofutf8mb4_uca1400_german_as_ci
. Collation names with character set prefixes are accepted for the new UCA 14.0.0 collations, but they are optional.When the
information_schema.COLLATIONS
table is queried for metadata about the new UCA 14.0.0 collations, theCOLLATION_NAME
column contains the collation name without a character set prefix, and theCHARACTER_SET_NAME
column containsNULL
, which indicates that these collations can apply to multiple character sets.When the
information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
table is queried for character set applicability of the new UCA 14.0.0 collations, theCOLLATION_NAME
column also contains the collation name without a character set prefix. A newFULL_COLLATION_NAME
column has been added, which contains the full collation name (with a character set prefix) for all collations, including new UCA 14.0.0 collations.Improved contraction performance in UCA collations.
Improved UCA collation performance for the
utf8mb3
andutf8mb4
character sets.
On Microsoft Windows, MariaDB command-line tools now include full Unicode support. (MDEV-26713)
Unicode support is available on Microsoft Windows 10 1909 or later, Microsoft Windows 11, and Microsoft Windows Server 2020.
The
my.ini
configuration file is now UTF-8 encoded.The
mariadb.exe
command-line client usesutf8mb4
as the default character set.
Security Features
The
password_reuse_check
plugin implements a way to prevent a user from setting a password that had been set for that user previously. (MDEV-5245)The
password_reuse_check_interval
system variable specifies the number of days before a password can be reused.The plugin only affects a SQL statement that sets a user password using a literal password string. It cannot check the password of a SQL statement that makes use of a hashed password value.
The plugin makes use of password history records stored in the
mysql.password_reuse_check_history
system table. Each row in the table stores a cryptographic hash and a date. The hashed data includes information about the affected user and the password that is being set. Because it is a one-way cryptographic hash, the stored data cannot be used to extract the prior password values nor which user the historical record is associated with.The
password_reuse_check
plugin was previously backported to MariaDB Enterprise Server 10.4.25-16, 10.5.16-11, and 10.6.8-4.
GRANT .. TO PUBLIC
can be used to grant privileges to all currently authenticated users and newly authenticated users on the system. (MDEV-5215)SHOW GRANTS FOR PUBLIC
retrieves all privileges granted to public. (MDEV-5215)Fine-grained privileges have been removed from the
SUPER
privilege: (MDEV-29668, MDEV-29596)Fine-grained privilege removed from SUPER as of ES 23.07.0
Upon upgrade, each user that has the
SUPER
privilege will be granted the privileges removed fromSUPER
, so that the user's capabilities will not change.The
SUPER
privilege is still used for some special cases, including:Calling
DES_ENCRYPT()
andDES_DECRYPT()
without an explicit keyDynamically changing certain system variables with
SET GLOBAL
Changing certain debug settings
Due to this change, the consistency of read-only replicas are now protected when users with the
SUPER
privilege attempt to write to a read-only replica if they do not also have theREAD ONLY ADMIN
privilege.Read-only replicas are replica servers that have
read_only=1
set to ensure that they stay consistent with the primary.If a user with the
SUPER
privilege requires write access to a read-only replica server, the user must be explicitly granted theREAD ONLY ADMIN
privilege.
MariaDB Replication
For all storage engines,
ALTER TABLE
is divided into two phases to prevent long-running DDL statements from causing replication lag on replicas: (MDEV-11675)Enabled by setting
binlog_alter_two_phase=1
, which is not the default.Two-phase
ALTER TABLE
is optimistic, so the operation begins on the replica server before it finishes on the primary server.Two events are written to the binary log on the primary server: a
START ALTER
event when the operation starts, and either aCOMMIT ALTER
event or aROLLBACK ALTER
event when the operation finishes depending on whether it succeeds or fails.
By default, replication uses Global Transaction IDs (GTID), which makes replicas crash-safe. (MDEV-19801)
This change impacts backward compatibility.
In previous releases, when
CHANGE MASTER TO
was executed without explicitly specifyingMASTER_USE_GTID
, it would default toMASTER_USE_GTID=no
.Starting with this release, when
CHANGE MASTER TO
is executed without explicitly specifyingMASTER_USE_GTID
, it defaults toMASTER_USE_GTID=slave_pos
. WithMASTER_USE_GTID=slave_pos
, the replica server uses thegtid_slave_pos
system variable as the GTID position.This change can cause new behavior to occur when performing the following operations:
Setting up a new replica with
CHANGE MASTER TO
without specifyingMASTER_USE_GTID
Freshly starting a stopped replica with
START REPLICA
if the replica configuration does not explicitly haveMASTER_USE_GTID
set.Resetting a replica with
RESET REPLICA
When
MASTER_LOG_FILE
andMASTER_LOG_POS
are explicitly set,MASTER_USE_GTID=no
is implicitly set.
Maximum allowed execution time for a replicated query can be specified by setting the
slave_max_statement_time
system variable. (MDEV-27161)The new system variable can be used to decrease replication lag on a replica, but it can also cause the replica to become inconsistent with the primary server. Therefore, the system variable is disabled by default to prevent inconsistencies.
The
slave_max_statement_time
system variable was previously backported to MariaDB Enterprise Server 10.5.18-13 and 10.6.11-6.When a replicated query times out, the
ER_SLAVE_STATEMENT_TIMEOUT
error code is raised.When multiple replicas are configured, all replicas use the same
slave_max_statement_time
value.
For
mariadb-binlog
, the start and stop positions can be specified as GTIDs: (MDEV-4989)$ mariadb-binlog --start-position='0-1-1001,1-2-1000' \ --stop-position='0-1-2000,1-2-1050' \ mariadb-bin.000001
The
--start-position
command-line option can set the starting GTID position as a comma-separated list of GTIDs. For each specified GTID domain, the GTID position is exclusive, so an event is only printed if its sequence number is greater than the sequence number specified for that domain.The
--stop-position
command-line option can set the ending GTID position as a comma-separated list of GTIDs. For each specified GTID domain, the GTID position is inclusive, so an event is only printed if its sequence number is greater than or equal to the sequence number specified for that domain.Both command-line options require each GTID in the comma-separated list to have a different domain ID.
For
mariadb-binlog
, events can be filtered based on the domain IDs and server IDs in the event's GTID: (MDEV-4989, MDEV-20119)$ mariadb-binlog --do-domain-ids='0,1' \ --do-server-ids='1,2' \ mariadb-bin.000001
The
--do-domain-ids
command-line option can set domain IDs that should be read as a comma-separated list of domain IDs. If an event's GTID does not have one of the specified domain IDs, the event is not printed.The
--ignore-domain-ids
command-line option can set domain IDs that should be ignored as a comma-separated list of domain IDs. If an event's GTID has one of the specified domain IDs, the event is not printed.The
--do-server-ids
command-line option can set server IDs that should be read as a comma-separated list of server IDs. If an event's GTID does not have one of the specified server IDs, the event is not printed. This is an alias for the--server-id
command-line option, and it allows for a list of server IDs instead of a single server ID.The
--ignore-server-ids
command-line option can set server IDs that should be ignored as a comma-separated list of server IDs. If an event's GTID has one of the specified server IDs, the event is not printed.When events are filtered on server IDs and domain IDs, an event is only printed when its GTID meets both conditions
replicate_rewrite_db
is now a system variable and can be changed dynamically. (MDEV-15530)Run
STOP REPLICA
to stop running replicas before changing the value dynamically.If the slave thread is running when the value is changed, an error is raised with the
ER_SLAVE_MUST_STOP
error code and the following error message:ERROR 1198 (HY000): This operation cannot be performed as you have a running slave
Galera Cluster
The following changes pertain to Galera Cluster with MariaDB Enterprise Server 23.07:
New connection states in
SHOW [FULL] PROCESSLIST
andinformation_schema.PROCESSLIST
better reflect the state of the connection: (MDEV-26352)Connection State
Description
waiting to execute in isolation
The connection is executing a DDL statement with
wsrep_osu_method=TOI
, but the operation requires other concurrent operations to finish first, so the DDL statement can be executed in isolation.waiting for TOI DDL
Another connection is executing a DDL statement with
wsrep_osu_method=TOI
, so this connection must wait for the DDL statement to finish.waiting for flow control
The connection is committing a transaction, but transactions are currently paused due to flow control, so the connection is waiting for the cluster to catch up and unpause transactions.
waiting for certification
The connection is committing a transaction, but it is waiting for the other cluster nodes to certify the transaction.
Node state changes can be saved to a machine-readable JSON file configured by the
wsrep_status_file
system variable: (MDEV-26971)[mariadb] wsrep_status_file=galera_status.json
The JSON file can be read by monitoring tools.
When
wsrep_status_file
is set to a path, the node state changes are written to the specified file.When
wsrep_status_file
is set tonone
, this functionality is disabled.
Progress reporting for MariaDB Enterprise Backup-based SST by configuring the
progress
option in the[sst]
option group: (MDEV-26971)[mariadb] wsrep_sst_method=mariabackup wsrep_debug=1 [sst] progress=1 rlimit=100m
Progress reporting is only supported for MariaDB Enterprise Backup-based SST, so
wsrep_sst_method=mariabackup
must be set.Progress reporting is only enabled when
wsrep_debug=1
is set.When
progress=1
is set, progress reporting goes to standard error (stderr
).When
progress
is set to a path, progress reporting is written to the specified file.When
progress
is set tonone
, progress reporting is disabled.rlimit
can be used to set a rate limit in bytes. The value can use a suffix to represent a unit:k
for kilobytes,m
for megabytes,g
for gigabytes, andt
for terabytes.The
pv
utility must be installed for SST progress reporting.When progress reporting is enabled, the following SST progress message is written to the MariaDB log during an SST:
[Note] WSREP: REPORTING SST PROGRESS: '{ "from": DONOR_NODE_ID, "to": JOINER_NODE_ID, "total": TOTAL_BYES, "done": DONE_BYTES, "indefinite": -1 }'
An IP allowlist defines the IP addresses permitted to join a running Galera Cluster: (MENT-425)
[mariadb] wsrep_allowlist='192.0.2.2,192.0.2.3,192.0.2.4'
The
wsrep_allowlist
system variable can be used to set a comma-separated list of IP addresses to allow.Only nodes from IP addresses in the IP allowlist can request an SST or IST to sync cluster data from a donor node in the cluster.
The
mysql.wsrep_allowlist
system table can be used to view the IP allowlist. The system table only exists when Galera is loaded.
When
plugin-wsrep-provider=ON
is set, thewsrep_provider_options
can be set as individual options: (MDEV-22570)[mariadb] plugin-wsrep-provider=ON gcache.size='4G' gcache.recover='YES'
The
wsrep_provider
REPLICATION
plugin is added as part of this change.
Interface Changes
allow_
suspicious_ system variable added (MDEV-24815)udfs binlog_
alter_ system variable added (MDEV-11675)two_ phase Com_
alter_ status variable removed (MDEV-19294)tablespace Com_
show_ status variable added (MDEV-27021)analyze CRC32C() function added (MDEV-27208)
DESC FOR CONNECTION SQL statement added (MDEV-10000)
DESC FOR CONNECTION
is an alias forSHOW EXPLAIN FOR CONNECTION
DESCRIBE FOR CONNECTION SQL statement added (MDEV-10000)
DESCRIBE FOR CONNECTION
is an alias forSHOW EXPLAIN FOR CONNECTION
ER_
JSON_ error code added (MDEV-27128)INVALID_ VALUE_ FOR_ KEYWORD ER_
JSON_ error code added (MDEV-27128)SCHEMA_ KEYWORD_ UNSUPPORTED ER_
WARN_ error code removed (MDEV-16546)HISTORY_ ROW_ START_ TIME EXPLAIN FOR CONNECTION SQL statement added (MDEV-25956)
explicit_
defaults_ system variable default value changed fromfor_ timestamp OFF
toON
(MDEV-28632)Feature_
into_ status variable added (MDEV-26974)outfile Feature_
into_ status variable added (MDEV-26974)variable FORMAT_
PICO_ function added (MDEV-31733, MDEV-19629)TIME() histogram_
type system variable default value changed fromDOUBLE_PREC_HB
toJSON_HB
(MDEV-26519)inet4
DATA TYPE
plugin added (MDEV-23287)JSON_
OVERLAPS() function added (MDEV-27677)JSON_
SCHEMA_ function added (MDEV-27128)VALID() log_
slow_ system variable added (MDEV-7567)min_ examined_ row_ limit min_examined_row_limit
is an alias forlog_slow_min_examined_row_limit
log_
slow_ system variable added (MDEV-7567)query slow_query_log
is an alias forlog_slow_query
log_
slow_ system variable added (MDEV-7567)query_ file slow_query_log_file
is an alias forlog_slow_query_file
log_
slow_ system variable added (MDEV-7567)query_ time long_query_time
is an alias forlog_slow_query_time
mariadb-binlog
--do-domain-ids command-line option added (MDEV-4989, MDEV-20119)mariadb-binlog
--do-server-ids command-line option added (MDEV-4989, MDEV-20119)mariadb-binlog
--gtid-strict-mode command-line option added (MDEV-4989)mariadb-binlog
--ignore-domain-ids command-line option added (MDEV-4989, MDEV-20119)mariadb-binlog
--ignore-server-ids command-line option added (MDEV-4989, MDEV-20119)mariadb-dump
--dump-history (-H) command-line option added (MDEV-16029)mariadb-dump
--header command-line option added (MDEV-22200)mariadb-dump
--order-by-size command-line option added (MDEV-28074)mariadbd
--binlog-alter-two-phase command-line option added (MDEV-11675)mariadbd
--log-slow-min-examined-row-limit command-line option added (MDEV-7567)--min-examined-row-limit
is an alias for--log-slow-min-examined-row-limit
mariadbd
--log-slow-query command-line option added (MDEV-7567)--slow-query-log
is an alias for--log-slow-query
mariadbd
--log-slow-query-file command-line option added (MDEV-7567)--slow-query-log-file
is an alias for--log-slow-query-file
mariadbd
--log-slow-query-time command-line option added (MDEV-7567)--long-query-time
is an alias for--log-slow-query-time
mariadbd
--rocksdb-log-dir command-line option added (MDEV-2779)mariadbd
--system-versioning-insert-history command-line option added (MDEV-16029)MASTER_DEMOTE_TO_SLAVE
reserved word added (MDEV-20122)Max_
used_ status variable added (MDEV-30543)connections_ time my_print_defaults
-e (--defaults-extra-file (-e)) command-line short option removed (MDEV-26238)my_print_defaults
-c (--defaults-file (-c)) command-line short option removed (MDEV-26238)my_print_defaults
-g (--defaults-group-suffix (-g)) command-line short option removed (MDEV-26238)my_print_defaults
--mariadbd command-line option added (MDEV-26238)NATURAL_
SORT_ function added (MDEV-4742)KEY() RANDOM_
BYTES() function added (MDEV-25704)replicate_
rewrite_ system variable added (MDEV-15530)db rocksdb_
log_ system variable added (MDEV-2779)dir ROW_NUMBER
reserved word added (MDEV-10075)SFORMAT() function added (MDEV-25015)
SHOW ANALYZE SQL statement added (MDEV-27021)
skip_
grant_ system variable added (MDEV-24815)tables system_
versioning_ system variable added (MDEV-16029)insert_ history transaction_
isolation system variable added (MDEV-21921)tx_isolation
is an alias totransaction_isolation
transaction_
read_ system variable added (MDEV-21921)only optimizer_
extra_ system variable added (MDEV-28852)pruning_ depth mariadbd
--optimizer-extra-pruning-depth command-line option added (MDEV-28852)optimizer_
prune_ system variable default value changed fromlevel 1
to2
(MDEV-28852)optimizer_
prune_ system variable adds a new prune levellevel 2
to enable prune join prefixes (MDEV-28852)optimizer_
switch system variable default value changed fromindex_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,hash_join_cardinality=off
toindex_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,hash_join_cardinality=on
(MDEV-30812)Optimizer_
join_ status variable added (MDEV-28852)prefixes_ check_ calls
Collations interface changes
uca1400_
ai_ collation added (MDEV-27009)ci uca1400_
ai_ collation added (MDEV-27009)cs uca1400_
as_ collation added (MDEV-27009)ci uca1400_
as_ collation added (MDEV-27009)cs uca1400_
croatian_ collation added (MDEV-27009)ai_ ci uca1400_
croatian_ collation added (MDEV-27009)ai_ cs uca1400_
croatian_ collation added (MDEV-27009)as_ ci uca1400_
croatian_ collation added (MDEV-27009)as_ cs uca1400_
croatian_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
croatian_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
croatian_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
croatian_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
czech_ collation added (MDEV-27009)ai_ ci uca1400_
czech_ collation added (MDEV-27009)ai_ cs uca1400_
czech_ collation added (MDEV-27009)as_ ci uca1400_
czech_ collation added (MDEV-27009)as_ cs uca1400_
czech_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
czech_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
czech_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
czech_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
danish_ collation added (MDEV-27009)ai_ ci uca1400_
danish_ collation added (MDEV-27009)ai_ cs uca1400_
danish_ collation added (MDEV-27009)as_ ci uca1400_
danish_ collation added (MDEV-27009)as_ cs uca1400_
danish_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
danish_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
danish_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
danish_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
esperanto_ collation added (MDEV-27009)ai_ ci uca1400_
esperanto_ collation added (MDEV-27009)ai_ cs uca1400_
esperanto_ collation added (MDEV-27009)as_ ci uca1400_
esperanto_ collation added (MDEV-27009)as_ cs uca1400_
esperanto_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
esperanto_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
esperanto_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
esperanto_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
estonian_ collation added (MDEV-27009)ai_ ci uca1400_
estonian_ collation added (MDEV-27009)ai_ cs uca1400_
estonian_ collation added (MDEV-27009)as_ ci uca1400_
estonian_ collation added (MDEV-27009)as_ cs uca1400_
estonian_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
estonian_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
estonian_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
estonian_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
german2_ collation added (MDEV-27009)ai_ ci uca1400_
german2_ collation added (MDEV-27009)ai_ cs uca1400_
german2_ collation added (MDEV-27009)as_ ci uca1400_
german2_ collation added (MDEV-27009)as_ cs uca1400_
german2_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
german2_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
german2_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
german2_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
hungarian_ collation added (MDEV-27009)ai_ ci uca1400_
hungarian_ collation added (MDEV-27009)ai_ cs uca1400_
hungarian_ collation added (MDEV-27009)as_ ci uca1400_
hungarian_ collation added (MDEV-27009)as_ cs uca1400_
hungarian_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
hungarian_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
hungarian_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
hungarian_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
icelandic_ collation added (MDEV-27009)ai_ ci uca1400_
icelandic_ collation added (MDEV-27009)ai_ cs uca1400_
icelandic_ collation added (MDEV-27009)as_ ci uca1400_
icelandic_ collation added (MDEV-27009)as_ cs uca1400_
icelandic_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
icelandic_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
icelandic_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
icelandic_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
latvian_ collation added (MDEV-27009)ai_ ci uca1400_
latvian_ collation added (MDEV-27009)ai_ cs uca1400_
latvian_ collation added (MDEV-27009)as_ ci uca1400_
latvian_ collation added (MDEV-27009)as_ cs uca1400_
latvian_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
latvian_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
latvian_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
latvian_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
lithuanian_ collation added (MDEV-27009)ai_ ci uca1400_
lithuanian_ collation added (MDEV-27009)ai_ cs uca1400_
lithuanian_ collation added (MDEV-27009)as_ ci uca1400_
lithuanian_ collation added (MDEV-27009)as_ cs uca1400_
lithuanian_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
lithuanian_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
lithuanian_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
lithuanian_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
nopad_ collation added (MDEV-27009)ai_ ci uca1400_
nopad_ collation added (MDEV-27009)ai_ cs uca1400_
nopad_ collation added (MDEV-27009)as_ ci uca1400_
nopad_ collation added (MDEV-27009)as_ cs uca1400_
persian_ collation added (MDEV-27009)ai_ ci uca1400_
persian_ collation added (MDEV-27009)ai_ cs uca1400_
persian_ collation added (MDEV-27009)as_ ci uca1400_
persian_ collation added (MDEV-27009)as_ cs uca1400_
persian_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
persian_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
persian_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
persian_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
polish_ collation added (MDEV-27009)ai_ ci uca1400_
polish_ collation added (MDEV-27009)ai_ cs uca1400_
polish_ collation added (MDEV-27009)as_ ci uca1400_
polish_ collation added (MDEV-27009)as_ cs uca1400_
polish_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
polish_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
polish_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
polish_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
roman_ collation added (MDEV-27009)ai_ ci uca1400_
roman_ collation added (MDEV-27009)ai_ cs uca1400_
roman_ collation added (MDEV-27009)as_ ci uca1400_
roman_ collation added (MDEV-27009)as_ cs uca1400_
roman_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
roman_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
roman_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
roman_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
romanian_ collation added (MDEV-27009)ai_ ci uca1400_
romanian_ collation added (MDEV-27009)ai_ cs uca1400_
romanian_ collation added (MDEV-27009)as_ ci uca1400_
romanian_ collation added (MDEV-27009)as_ cs uca1400_
romanian_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
romanian_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
romanian_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
romanian_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
sinhala_ collation added (MDEV-27009)ai_ ci uca1400_
sinhala_ collation added (MDEV-27009)ai_ cs uca1400_
sinhala_ collation added (MDEV-27009)as_ ci uca1400_
sinhala_ collation added (MDEV-27009)as_ cs uca1400_
sinhala_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
sinhala_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
sinhala_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
sinhala_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
slovak_ collation added (MDEV-27009)ai_ ci uca1400_
slovak_ collation added (MDEV-27009)ai_ cs uca1400_
slovak_ collation added (MDEV-27009)as_ ci uca1400_
slovak_ collation added (MDEV-27009)as_ cs uca1400_
slovak_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
slovak_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
slovak_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
slovak_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
slovenian_ collation added (MDEV-27009)ai_ ci uca1400_
slovenian_ collation added (MDEV-27009)ai_ cs uca1400_
slovenian_ collation added (MDEV-27009)as_ ci uca1400_
slovenian_ collation added (MDEV-27009)as_ cs uca1400_
slovenian_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
slovenian_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
slovenian_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
slovenian_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
spanish2_ collation added (MDEV-27009)ai_ ci uca1400_
spanish2_ collation added (MDEV-27009)ai_ cs uca1400_
spanish2_ collation added (MDEV-27009)as_ ci uca1400_
spanish2_ collation added (MDEV-27009)as_ cs uca1400_
spanish2_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
spanish2_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
spanish2_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
spanish2_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
spanish_ collation added (MDEV-27009)ai_ ci uca1400_
spanish_ collation added (MDEV-27009)ai_ cs uca1400_
spanish_ collation added (MDEV-27009)as_ ci uca1400_
spanish_ collation added (MDEV-27009)as_ cs uca1400_
spanish_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
spanish_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
spanish_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
spanish_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
swedish_ collation added (MDEV-27009)ai_ ci uca1400_
swedish_ collation added (MDEV-27009)ai_ cs uca1400_
swedish_ collation added (MDEV-27009)as_ ci uca1400_
swedish_ collation added (MDEV-27009)as_ cs uca1400_
swedish_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
swedish_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
swedish_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
swedish_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
turkish_ collation added (MDEV-27009)ai_ ci uca1400_
turkish_ collation added (MDEV-27009)ai_ cs uca1400_
turkish_ collation added (MDEV-27009)as_ ci uca1400_
turkish_ collation added (MDEV-27009)as_ cs uca1400_
turkish_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
turkish_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
turkish_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
turkish_ collation added (MDEV-27009)nopad_ as_ cs uca1400_
vietnamese_ collation added (MDEV-27009)ai_ ci uca1400_
vietnamese_ collation added (MDEV-27009)ai_ cs uca1400_
vietnamese_ collation added (MDEV-27009)as_ ci uca1400_
vietnamese_ collation added (MDEV-27009)as_ cs uca1400_
vietnamese_ collation added (MDEV-27009)nopad_ ai_ ci uca1400_
vietnamese_ collation added (MDEV-27009)nopad_ ai_ cs uca1400_
vietnamese_ collation added (MDEV-27009)nopad_ as_ ci uca1400_
vietnamese_ collation added (MDEV-27009)nopad_ as_ cs
Galera Cluster interface changes
mariadbd
--wsrep-allowlist command-line option added (MENT-425)mariadbd
--wsrep-replicate-myisam command-line option removed (MDEV-24947)Use
wsrep_mode=REPLICATE_MYISAM
mariadbd
--wsrep-status-file command-line option added (MDEV-26971)mariadbd
--wsrep-strict-ddl command-line option removed (MDEV-24843)Use
wsrep_mode=STRICT_REPLICATION
wsrep_
allowlist system variable added (MENT-425)wsrep_provider
REPLICATION
plugin added (MDEV-22570)wsrep_
replicate_ system variable removed (MDEV-24947)myisam wsrep_
status_ system variable added (MDEV-26971)file wsrep_
strict_ system variable removed (MDEV-24843)ddl
MariaDB Query Optimizer interface changes
mariadbd
--optimizer-disk-read-cost command-line option added (MDEV-26974)mariadbd
--optimizer-disk-read-ratio command-line option added (MDEV-26974)mariadbd
--optimizer-index-block-copy-cost command-line option added (MDEV-26974)mariadbd
--optimizer-key-compare-cost command-line option added (MDEV-26974)mariadbd
--optimizer-key-copy-cost command-line option added (MDEV-26974)mariadbd
--optimizer-key-lookup-cost command-line option added (MDEV-26974)mariadbd
--optimizer-key-next-find-cost command-line option added (MDEV-26974)mariadbd
--optimizer-row-copy-cost command-line option added (MDEV-26974)mariadbd
--optimizer-row-lookup-cost command-line option added (MDEV-26974)mariadbd
--optimizer-row-next-find-cost command-line option added (MDEV-26974)mariadbd
--optimizer-rowid-compare-cost command-line option added (MDEV-26974)mariadbd
--optimizer-rowid-copy-cost command-line option added (MDEV-26974)mariadbd
--optimizer-scan-setup-cost command-line option added (MDEV-26974)mariadbd
--optimizer-where-cost command-line option added (MDEV-26974)mariadb
--show-query-costs command-line option added (MDEV-26974)optimizer_
disk_ system variable added (MDEV-26974)read_ cost optimizer_
disk_ system variable added (MDEV-26974)read_ ratio optimizer_
index_ system variable added (MDEV-26974)block_ copy_ cost optimizer_
key_ system variable added (MDEV-26974)compare_ cost optimizer_
key_ system variable added (MDEV-26974)copy_ cost optimizer_
key_ system variable added (MDEV-26974)lookup_ cost optimizer_
key_ system variable added (MDEV-26974)next_ find_ cost optimizer_
row_ system variable added (MDEV-26974)copy_ cost optimizer_
row_ system variable added (MDEV-26974)lookup_ cost optimizer_
row_ system variable added (MDEV-26974)next_ find_ cost optimizer_
rowid_ system variable added (MDEV-26974)compare_ cost optimizer_
rowid_ system variable added (MDEV-26974)copy_ cost optimizer_
scan_ system variable added (MDEV-26974)setup_ cost optimizer_
where_ system variable added (MDEV-26974)cost OPTIMIZER_
COSTS information schema table added (MDEV-26974)
InnoDB Storage Engine interface changes
mariadbd
--innodb-change-buffer-max-size command-line option removed (MDEV-29694)mariadbd
--innodb-change-buffering command-line option removed (MDEV-29694)mariadbd
--innodb-data-file-buffering command-line option added (MDEV-30136)mariadbd
--innodb-data-file-write-through command-line option added (MDEV-30136)mariadbd
--innodb-defragment command-line option removed (MDEV-30545, MDEV-30544)mariadbd
--innodb-defragment-fill-factor command-line option removed (MDEV-30545, MDEV-30544)mariadbd
--innodb-defragment-fill-factor-n-recs command-line option removed (MDEV-30545, MDEV-30544)mariadbd
--innodb-defragment-frequency command-line option removed (MDEV-30545, MDEV-30544)mariadbd
--innodb-defragment-n-pages command-line option removed (MDEV-30545, MDEV-30544)mariadbd
--innodb-defragment-stats-accuracy command-line option removed (MDEV-30545, MDEV-30544)mariadbd
--innodb-log-file-buffering command-line option added (MDEV-30136)mariadbd
--innodb-log-file-write-through command-line option added (MDEV-30136)mariadbd
--innodb-log-write-ahead-size command-line option removed (MDEV-14425)innodb_
buffer_ system variable default value changed frompool_ chunk_ size 134217728
to0
(MDEV-25342)innodb_
buffer_ system variable maximum value changed frompool_ chunk_ size 9223372036854775807
to18446744073709551615
(MDEV-25342)innodb_
buffer_ system variable minimum value changed frompool_ chunk_ size 1048576
to0
(MDEV-25342)innodb_
change_ system variable removed (MDEV-29694)buffer_ max_ size innodb_
change_ system variable removed (MDEV-29694)buffering innodb_
data_ system variable added (MDEV-30136)file_ buffering innodb_
data_ system variable added (MDEV-30136)file_ write_ through innodb_
defragment system variable removed (MDEV-30545, MDEV-30544)Innodb_
defragment_ status variable removed (MDEV-30545, MDEV-30544)compression_ failures Innodb_
defragment_ status variable removed (MDEV-30545, MDEV-30544)count Innodb_
defragment_ status variable removed (MDEV-30545, MDEV-30544)failures innodb_
defragment_ system variable removed (MDEV-30545, MDEV-30544)fill_ factor innodb_
defragment_ system variable removed (MDEV-30545, MDEV-30544)fill_ factor_ n_ recs innodb_
defragment_ system variable removed (MDEV-30545, MDEV-30544)frequency innodb_
defragment_ system variable removed (MDEV-30545, MDEV-30544)n_ pages innodb_
defragment_ system variable removed (MDEV-30545, MDEV-30544)stats_ accuracy Innodb_
ibuf_ status variable removed (MDEV-29694)discarded_ delete_ marks Innodb_
ibuf_ status variable removed (MDEV-29694)discarded_ deletes Innodb_
ibuf_ status variable removed (MDEV-29694)discarded_ inserts Innodb_
ibuf_ status variable removed (MDEV-29694)free_ list Innodb_
ibuf_ status variable removed (MDEV-29694)merged_ delete_ marks Innodb_
ibuf_ status variable removed (MDEV-29694)merged_ deletes Innodb_
ibuf_ status variable removed (MDEV-29694)merged_ inserts Innodb_
ibuf_ status variable removed (MDEV-29694)merges Innodb_
ibuf_ status variable removed (MDEV-29694)segment_ size Innodb_
ibuf_ status variable removed (MDEV-29694)size innodb_
log_ system variable maximum value changed frombuffer_ size 9223372036854775807
to18446744073709551615
(MDEV-14425)innodb_
log_ system variable minimum value changed frombuffer_ size 262144
to2097152
(MDEV-14425)innodb_
log_ system variable added (MDEV-30136)file_ buffering innodb_
log_ system variable minimum value changed fromfile_ size 1048576
to4194304
(MDEV-27812)innodb_
log_ system variable added (MDEV-30136)file_ write_ through innodb_
log_ system variable removed (MDEV-14425)write_ ahead_ size On Linux and Microsoft Windows, the physical block size of the underlying storage will be detected and used.
Innodb_
os_ status variable removed (MDEV-14425)log_ fsyncs This information is included in
Innodb_data_fsyncs
Innodb_
os_ status variable removed (MDEV-14425)log_ pending_ fsyncs This information is included in
Innodb_data_fsyncs
Innodb_
os_ status variable removed (MDEV-14425)log_ pending_ writes This information is included in
Innodb_data_fsyncs
innodb_
prefix_ system variable default value changed fromindex_ cluster_ optimization OFF
toON
(MDEV-28540)innodb_prefix_index_cluster_optimization
is always activated.This system variable will be removed in the future.
Innodb_
rows_ status variable removed (MDEV-28539)deleted Handler_delete
provides the same counter, soInnodb_rows_deleted
is not needed
Innodb_
rows_ status variable removed (MDEV-28539)inserted Handler_write
provides the same counter, soInnodb_rows_inserted
is not needed
Innodb_
rows_ status variable removed (MDEV-28539)read Handler_read_*
status variables provide the same counter, soInnodb_rows_read
is not needed
Innodb_
rows_ status variable removed (MDEV-28539)updated Handler_update
provides the same counter, soInnodb_rows_updated
is not needed
Innodb_
secondary_ status variable removed (MDEV-28540)index_ triggered_ cluster_ reads Innodb_
secondary_ status variable removed (MDEV-28540)index_ triggered_ cluster_ reads_ avoided Innodb_
system_ status variable removed (MDEV-28539)rows_ deleted Innodb_
system_ status variable removed (MDEV-28539)rows_ inserted Innodb_
system_ status variable removed (MDEV-28539)rows_ read Innodb_
system_ status variable removed (MDEV-28539)rows_ updated innodb_
undo_ system variable default value changed fromtablespaces 0
to3
(MDEV-29986)innodb_
version system variable removed (MDEV-28554)mariadb-backup
--innodb-data-file-buffering command-line option added (MDEV-30136)mariadb-backup
--innodb-data-file-write-through command-line option added (MDEV-30136)mariadb-backup
--innodb-log-file-buffering command-line option added (MDEV-30136)
Spider Storage Engine interface changes
mariadbd
--spider-udf-ct-bulk-insert-interval command-line option removed (MDEV-27228)mariadbd
--spider-udf-ct-bulk-insert-rows command-line option removed (MDEV-27228)mariadbd
--spider-udf-ds-bulk-insert-rows command-line option removed (MDEV-27228)mariadbd
--spider-udf-ds-table-loop-mode command-line option removed (MDEV-27228)mariadbd
--spider-udf-ds-use-real-table command-line option removed (MDEV-27228)mariadbd
--spider-udf-table-lock-mutex-count command-line option removed (MDEV-27228)mariadbd
--spider-udf-table-mon-mutex-count command-line option removed (MDEV-27228)mariadbd
--spider-use-handler command-line option removed (MDEV-27228)spider_
auto_ system variable default value changed fromincrement_ mode -1
to0
(MDEV-27169)spider_
bgs_ system variable default value changed fromfirst_ read -1
to2
(MDEV-27169)spider_
bgs_ system variable default value changed frommode -1
to0
(MDEV-27169)spider_
bgs_ system variable default value changed fromsecond_ read -1
to100
(MDEV-27169)spider_
bka_ system variable default value changed frommode -1
to1
(MDEV-27169)spider_
bka_ system variable default value changed fromtable_ name_ type -1
to0
(MDEV-27169)spider_
buffer_ system variable default value changed fromsize -1
to16000
(MDEV-27169)spider_
bulk_ system variable default value changed fromsize -1
to16000
(MDEV-27169)spider_
bulk_ system variable default value changed fromupdate_ mode -1
to0
(MDEV-27169)spider_
bulk_ system variable default value changed fromupdate_ size -1
to16000
(MDEV-27169)spider_
casual_ system variable default value changed fromread -1
to0
(MDEV-27169)spider_
connect_ system variable default value changed fromtimeout -1
to6
(MDEV-27169)spider_
crd_ system variable default value changed frombg_ mode -1
to2
(MDEV-27169)spider_
crd_ system variable default value changed frominterval -1
to51
(MDEV-27169)spider_
crd_ system variable default value changed frommode -1
to1
(MDEV-27169)spider_
crd_ system variable default value changed fromsync -1
to0
(MDEV-27169)spider_
crd_ system variable default value changed fromtype -1
to2
(MDEV-27169)spider_
crd_ system variable default value changed fromweight -1
to2
(MDEV-27169)spider_
delete_ system variable default value changed fromall_ rows_ type -1
to1
(MDEV-27169)spider_
direct_ system variable default value changed fromdup_ insert -1
to0
(MDEV-27169)spider_
direct_ system variable default value changed fromorder_ limit System Variable -1
to9223372036854775807
(MDEV-27169)spider_
error_ system variable default value changed fromread_ mode -1
to0
(MDEV-27169)spider_
error_ system variable default value changed fromwrite_ mode -1
to0
(MDEV-27169)spider_
first_ system variable default value changed fromread -1
to0
(MDEV-27169)spider_
init_ system variable default value changed fromsql_ alloc_ size -1
to1024
(MDEV-27169)spider_
internal_ system variable default value changed fromlimit -1
to9223372036854775807
(MDEV-27169)spider_
internal_ system variable default value changed fromoffset -1
to0
(MDEV-27169)spider_
internal_ system variable default value changed fromoptimize -1
to0
(MDEV-27169)spider_
internal_ system variable default value changed fromoptimize_ local -1
to0
(MDEV-27169)spider_
load_ system variable default value changed fromcrd_ at_ startup -1
to1
(MDEV-27169)spider_
load_ system variable default value changed fromsts_ at_ startup -1
to1
(MDEV-27169)spider_
low_ system variable default value changed frommem_ read -1
to1
(MDEV-27169)spider_
max_ system variable default value changed fromorder -1
to32767
(MDEV-27169)spider_
multi_ system variable default value changed fromsplit_ read -1
to100
(MDEV-27169)spider_
net_ system variable default value changed fromread_ timeout -1
to600
(MDEV-27169)spider_
net_ system variable default value changed fromwrite_ timeout -1
to600
(MDEV-27169)spider_
quick_ system variable default value changed frommode -1
to3
(MDEV-27169)spider_
quick_ system variable default value changed frompage_ byte -1
to10485760
(MDEV-27169)spider_
quick_ system variable default value changed frompage_ size -1
to1024
(MDEV-27169)spider_
read_ system variable default value changed fromonly_ mode -1
to0
(MDEV-27169)spider_
reset_ system variable default value changed fromsql_ alloc -1
to1
(MDEV-27169)spider_
second_ system variable default value changed fromread -1
to0
(MDEV-27169)spider_
select_ system variable default value changed fromcolumn_ mode -1
to1
(MDEV-27169)spider_
selupd_ system variable default value changed fromlock_ mode -1
to1
(MDEV-27169)spider_
semi_ system variable default value changed fromsplit_ read -1
to2
(MDEV-27169)spider_
semi_ system variable default value changed fromsplit_ read_ limit -1
to9223372036854775807
(MDEV-27169)spider_
semi_ system variable default value changed fromtable_ lock 1
to0
(MDEV-27169)spider_
semi_ system variable default value changed fromtable_ lock_ connection -1
to1
(MDEV-27169)spider_
skip_ system variable default value changed fromdefault_ condition -1
to0
(MDEV-27169)spider_
skip_ system variable default value changed fromparallel_ search -1
to0
(MDEV-27169)spider_
split_ system variable default value changed fromread -1
to9223372036854775807
(MDEV-27169)spider_
store_ system variable default value changed fromlast_ crd -1
to1
(MDEV-27169)spider_
store_ system variable default value changed fromlast_ sts -1
to1
(MDEV-27169)spider_
strict_ system variable default value changed fromgroup_ by -1
to1
(MDEV-27169)spider_
sts_ system variable default value changed frombg_ mode -1
to2
(MDEV-27169)spider_
sts_ system variable default value changed frominterval -1
to10
(MDEV-27169)spider_
sts_ system variable default value changed frommode -1
to1
(MDEV-27169)spider_
sts_ system variable default value changed fromsync -1
to0
(MDEV-27169)spider_
udf_ system variable removed (MDEV-27228)ct_ bulk_ insert_ interval spider_
udf_ system variable removed (MDEV-27228)ct_ bulk_ insert_ rows spider_
udf_ system variable removed (MDEV-27228)ds_ bulk_ insert_ rows spider_
udf_ system variable removed (MDEV-27228)ds_ table_ loop_ mode spider_
udf_ system variable removed (MDEV-27228)ds_ use_ real_ table spider_
udf_ system variable removed (MDEV-27228)table_ lock_ mutex_ count spider_
udf_ system variable removed (MDEV-27228)table_ mon_ mutex_ count spider_
use_ system variable removed (MDEV-27228)handler spider_
use_ system variable default value changed fromtable_ charset -1
to1
(MDEV-27169)spider_
version system variable removed (MDEV-26282)
Platforms
In alignment to the enterprise lifecycle, MariaDB Enterprise Server 23.07.0 is provided for:
Debian 10 (x86_
64, ARM64) Debian 11 (x86_
64, ARM64) Debian 12 (x86_
64, ARM64) Microsoft Windows (x86_
64) Red Hat Enterprise Linux 8 (x86_
64, ARM64) Red Hat Enterprise Linux 9 (x86_
64, ARM64) Rocky Linux 8 (x86_
64, ARM64) Rocky Linux 9 (x86_
64, ARM64) SUSE Linux Enterprise Server 15 (x86_
64, ARM64) Ubuntu 20.04 (x86_
64, ARM64) Ubuntu 22.04 (x86_
64, ARM64)
Some components of MariaDB Enterprise Server are supported on a subset of platforms. See MariaDB Engineering Policies for details. Additionally, MariaDB Enterprise ColumnStore is not currently available for Debian 12.