> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/server-usage/storage-engines/tidesql.md).

# TideSQL

TideSQL is a transactional, log-structured merge-tree storage engine for MariaDB Server, built on the TidesDB library, optimized for high write throughput with full SQL, MVCC, encryption, and secondar

{% hint style="info" %}
TideSQL is a community contribution to MariaDB Server. It is a storage engine plugin built on the TidesDB library, which is developed and maintained upstream, outside MariaDB. TideSQL 5.0.0 ships at Beta maturity.
{% endhint %}

TideSQL stores a table's data in a TidesDB log-structured merge tree instead of InnoDB, reached through ordinary SQL. Moving a table from InnoDB to TidesDB is usually a change to the `ENGINE` clause and nothing more; see [TideSQL Limitations](/docs/server/server-usage/storage-engines/tidesql/tidesql-limitations.md) for the cases that need more care. The engine favors write throughput, keeps read cost bounded through background compaction, and provides transactions through the library's optimistic multi-version concurrency control, so readers proceed without blocking writers. In `SHOW ENGINES` the engine reports its name as `TidesDB`.

{% columns %}
{% column %}
{% content-ref url="/pages/IdncrXaxLHlcIH7fJjLU" %}
[Getting Started with TideSQL](/docs/server/server-usage/storage-engines/tidesql/getting-started-with-tidesql.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Load the plugin, build it with the `install.sh` builder, create your first TidesDB table, and understand the one linkage detail that decides whether the plugin loads at all.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/hrGxbFWqaET8o14r3eVW" %}
[TideSQL Versions and Compatibility](/docs/server/server-usage/storage-engines/tidesql/tidesql-versions-and-compatibility.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
How TideSQL major versions map to the TidesDB library, and which MariaDB Server versions each release is tested against.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/7kL8mVgscHVb9FPLqyWD" %}
[TideSQL Data Model](/docs/server/server-usage/storage-engines/tidesql/tidesql-data-model.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
How TideSQL maps SQL rows and indexes onto TidesDB column families, key namespaces, and the on-disk row format.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/Nvsiv8Ad7chWrHLIRRNN" %}
[TideSQL Transactions and Isolation](/docs/server/server-usage/storage-engines/tidesql/tidesql-transactions-and-isolation.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The optimistic MVCC model, how the SQL isolation levels map onto the library, and how write contention behaves compared with InnoDB's row locks.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/OpGYYZc4nEPkpw1boh4f" %}
[TideSQL Durability and Sync Modes](/docs/server/server-usage/storage-engines/tidesql/tidesql-durability-and-sync-modes.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The sync modes that trade durability for throughput, what each one guarantees on a crash, and how they compare with InnoDB's log flushing.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/8Zj9g4bCXwivcl76mM1d" %}
[TideSQL Table Options](/docs/server/server-usage/storage-engines/tidesql/tidesql-table-options.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The table options that control compression, encryption, TTL, bloom filters, and other per-table behavior.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/Xae2zeapLuPDAoNY1m9f" %}
[TideSQL System Variables](/docs/server/server-usage/storage-engines/tidesql/tidesql-system-variables.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
A complete reference for TideSQL system variables, for tuning memory, compaction, durability, and other engine behavior.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/4fOZhuSxA7ZDTO5sZCgo" %}
[TideSQL Status Variables](/docs/server/server-usage/storage-engines/tidesql/tidesql-status-variables.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The status variables that report cache activity, compaction, memtable and flush metrics, and other engine internals.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/6gRMeUG0xZ9scDRZWPRI" %}
[TideSQL Data-at-Rest Encryption](/docs/server/server-usage/storage-engines/tidesql/tidesql-encryption.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Per-row data-at-rest encryption through MariaDB key management, key versions and rotation, and how encryption interacts with compression and indexes.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/0rVLo5biQJUmNksFCShf" %}
[TideSQL Time-to-Live (TTL)](/docs/server/server-usage/storage-engines/tidesql/tidesql-time-to-live.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Row expiration through a time-to-live column, how expired rows are reclaimed during compaction, and how TTL composes with the rest of the engine.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/3AuTwfJvYBfUgq22L0lZ" %}
[TideSQL Full-Text Search](/docs/server/server-usage/storage-engines/tidesql/tidesql-full-text-search.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Full-text indexes on TidesDB tables, the supported query syntax, and how the engine builds and maintains the index.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/bN7PQZpHNMA1devhmReF" %}
[TideSQL Vector Search](/docs/server/server-usage/storage-engines/tidesql/tidesql-vector-search.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Vector indexes for approximate nearest-neighbor search, the supported distance functions, and how to run a similarity query.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/qGDxC8EgCy1wPSWQtpDj" %}
[TideSQL Spatial Indexes](/docs/server/server-usage/storage-engines/tidesql/tidesql-spatial-indexes.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Spatial indexes on geometry columns, the supported types, and how spatial predicates are evaluated.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/9HNXE5lHFET0STHqQoW1" %}
[TideSQL Generated Columns and JSON](/docs/server/server-usage/storage-engines/tidesql/tidesql-generated-columns-and-json.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Virtual and stored generated columns, indexing them, and working with JSON documents on TidesDB tables.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/iVXKikbBNfQJZr3Vklnx" %}
[TideSQL Foreign Keys](/docs/server/server-usage/storage-engines/tidesql/tidesql-foreign-keys.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Foreign-key constraints on TidesDB tables, the referential actions the engine enforces, and how they are checked.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/SVbzQlOxTobdjlwzXUE1" %}
[TideSQL Backup and Checkpoint](/docs/server/server-usage/storage-engines/tidesql/tidesql-backup-and-checkpoint.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Taking a consistent online backup with a TidesDB checkpoint, what the checkpoint contains, and how to restore it.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/nvSbnlOvACbFAVaDKiBp" %}
[TideSQL Table Maintenance](/docs/server/server-usage/storage-engines/tidesql/tidesql-table-maintenance.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
How ANALYZE, OPTIMIZE, and REPAIR behave on TidesDB tables, and when to run them.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/G3mShrt2GGEOUYSPcTRr" %}
[TideSQL Monitoring](/docs/server/server-usage/storage-engines/tidesql/tidesql-monitoring.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Reading engine status through status variables and `SHOW ENGINE TidesDB STATUS`, and the metrics that matter for compaction and cache health.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/IpKfJ4CYipgB6Bl8xk4L" %}
[TideSQL Online DDL](/docs/server/server-usage/storage-engines/tidesql/tidesql-online-ddl.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Which schema changes TidesDB performs instantly or in place, which require a table copy, and how ALGORITHM and LOCK clauses apply.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/widw4CiPNvxa2Cq8fjh1" %}
[TideSQL Partitioning](/docs/server/server-usage/storage-engines/tidesql/tidesql-partitioning.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Partitioning TidesDB tables, the supported partition types, and how partitions map onto storage.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/Vhg5rJMy4TIjgogpTTxF" %}
[TideSQL Replication and High Availability](/docs/server/server-usage/storage-engines/tidesql/tidesql-replication-and-ha.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
How TideSQL participates in MariaDB replication and Galera clustering, including engine-level write-set certification and cross-node conflict resolution.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/IZnOjoM6L6f0SFIDCCux" %}
[TideSQL Limitations](/docs/server/server-usage/storage-engines/tidesql/tidesql-limitations.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The current limitations of the engine to know before putting a workload on it.
{% endcolumn %}
{% endcolumns %}

<sub>*This page is licensed: GPLv2*</sub>
