MariaDB Xpand and MariaDB Enterprise Server Compatibility

Overview

Xpand built from the ground up to be a distributed, shared-nothing database and does not have any source code from other projects in its code base. Any application that uses a MariaDB client or JDBC/ODBC drivers (e.g. Ruby on Rails or Hibernate) can connect to Xpand without issue and use standard MariaDB constructs to interact with Xpand.

General Differences

  • Xpand has a different query planner and query plans may vary from those of MariaDB Enterprise Server. As part of your migration testing, we recommend reviewing query plans for slow queries to see if they might benefit from additional tuning. For additional information, see "EXPLAIN for MariaDB Xpand".

  • Xpand executable comments are of the form /*$ */. Xpand ignores other types of executable comments.

  • Xpand error codes do not match MariaDB Enterprise Server

  • Xpand implements a subset of MariaDB Enterprise Server's global variables, but behavior for those global variables may differ.

Schema Limitations

Limit

Description

Number of Tables

Xpand supports a maximum of approximately 2,000 tables. The precise limit for your installation depends on the number and type of indexes.

Number of Columns

Xpand recommends that each table have no more than 200 columns (including system-defined hidden columns), as higher column counts can impact performance and scalability.

Row Size

In Xpand, the maximum row size for persistent tables (stored on disk) is 64MB. The maximum row size when using RBR replication is 32MB.

On Xpand, object name comparisons are case insensitive and table names are stored in the case specified in the CREATE statement. The lower_case_table_names global variable has a value of 1 and cannot be changed.

Reserved Keywords

The following are reserved keywords for Xpand but not MariaDB Enterprise Server:

  • complement

  • full

  • legacy

  • signed

  • temporary

Xpand Internals:

Xpand is a clustered, distributed database built from the ground up for scale, concurrency, and performance as well as ease of use. While Xpand seeks to be compatible with MariaDB Enterprise Server, it contains no actual MariaDB Server or MySQL source code.

Here is more on Xpand internals: