# InnoDB Introduction

## Overview

MariaDB Enterprise Server uses the InnoDB storage engine by default. InnoDB is a general purpose transactional storage engine that is performant, ACID-compliant, and well-suited for most workloads.

## Benefits

The InnoDB storage engine:

* Is available with all versions of [MariaDB Enterprise Server](https://app.gitbook.com/s/aEnK0ZXmUbJzqQrTjFyb/enterprise-server/about/mariadb-enterprise-server-differences) and MariaDB Community Server.
* Is a general purpose storage engine.
* Is transactional and well-suited for online transactional processing (OLTP) workloads.
* Is ACID-compliant.
* Performs well for mixed read-write workloads.
* Supports online DDL.

## Feature Summary

| Feature                 | Detail                 | Resources                                                                                                                                                                                                                                                                                                           |
| ----------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Storage Engine          | InnoDB                 |                                                                                                                                                                                                                                                                                                                     |
| Availability            | All ES and CS versions | [MariaDB Enterprise Server](https://app.gitbook.com/o/diTpXxF5WsbHqTReoBsS/s/JqgUabdZsoY5EiaJmqgn/)                                                                                                                                                                                                                 |
| Workload Optimization   | Transactional          |                                                                                                                                                                                                                                                                                                                     |
| Table Orientation       | Row                    |                                                                                                                                                                                                                                                                                                                     |
| Default Row Format      | Dynamic                | [InnoDB Row Formats](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-row-formats) [InnoDB Dynamic Row Format](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-row-formats/innodb-dynamic-row-format)                                                          |
| ACID-compliant          | Yes                    |                                                                                                                                                                                                                                                                                                                     |
| XA Transactions         | Yes                    |                                                                                                                                                                                                                                                                                                                     |
| Primary Keys            | Yes                    | InnoDB Primary Keys                                                                                                                                                                                                                                                                                                 |
| Auto-Increment          | Yes                    | [InnoDB AUTO\_INCREMENT Columns](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/auto_increment-handling-in-innodb)                                                                                                                                                                             |
| Sequences               | Yes                    | InnoDB Sequences                                                                                                                                                                                                                                                                                                    |
| Foreign Keys            | Yes                    | InnoDB [Foreign Keys](#foreign-key-constraints)                                                                                                                                                                                                                                                                     |
| Indexes                 | Yes                    | InnoDB Indexes                                                                                                                                                                                                                                                                                                      |
| Secondary Indexes       | Yes                    | InnoDB Secondary Indexes                                                                                                                                                                                                                                                                                            |
| Unique Indexes          | Yes                    | InnoDB Unique Indexes                                                                                                                                                                                                                                                                                               |
| Full-text Search        | Yes                    | InnoDB Full-text Indexes                                                                                                                                                                                                                                                                                            |
| Spatial Indexes         | Yes                    | InnoDB Spatial Indexes                                                                                                                                                                                                                                                                                              |
| Compression             | Yes                    | [Configure InnoDB Page Compression](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-page-compression)                                                                                                                                                                                    |
| Data-at-Rest Encryption | Yes                    |                                                                                                                                                                                                                                                                                                                     |
| High Availability (HA)  | Yes                    | • [MariaDB Replication](https://mariadb.com/docs/server/ha-and-performance/standard-replication) • [Galera Cluster](https://app.gitbook.com/s/3VYeeVGUV4AMqrA3zwy7/readme/mariadb-galera-cluster-usage-guide)                                                                                                       |
| Main Memory Caching     | Yes                    | [InnoDB Buffer Pool](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-buffer-pool)                                                                                                                                                                                                        |
| Transaction Logging     | Yes                    | • [InnoDB Redo Log (Crash Safety)](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/mariadb-enterprise-server-innodb-operations/configure-the-innodb-redo-log) • [InnoDB Undo Log (MVCC)](https://mariadb.com/docs/server/server-usage/storage-engines/innodb-system-variables#innodb_undo_logs) |
| Garbage Collection      | Yes                    | [InnoDB Purge Threads](https://mariadb.com/docs/server/server-usage/storage-engines/innodb-system-variables#innodb_purge_threads)                                                                                                                                                                                   |
| Online Schema changes   | Yes                    | [InnoDB Schema Changes](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/mariadb-enterprise-server-innodb-operations/schema-changes)                                                                                                                                                             |
| Non-locking Reads       | Yes                    |                                                                                                                                                                                                                                                                                                                     |
| Row Locking             | Yes                    |                                                                                                                                                                                                                                                                                                                     |

## Examples

### Creating an InnoDB Table

```sql
CREATE DATABASE hq_sales;
```

```sql
CREATE TABLE hq_sales.invoices (
   invoice_id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL,
   branch_id INT NOT NULL,
   customer_id INT,
   invoice_date DATETIME(6),
   invoice_total DECIMAL(13, 2),
   payment_method ENUM('NONE', 'CASH', 'WIRE_TRANSFER', 'CREDIT_CARD', 'GIFT_CARD'),
   PRIMARY KEY(invoice_id)
) ENGINE = InnoDB;
```

```sql
SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA='hq_sales'
AND TABLE_NAME='invoices';
+--------------+------------+--------+
| TABLE_SCHEMA | TABLE_NAME | ENGINE |
+--------------+------------+--------+
| hq_sales     | invoices   | InnoDB |
+--------------+------------+--------+
```

## Resources

### Architecture

* Background Thread Pool
* [Buffer Pool](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-buffer-pool)
* [I/O Threads](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/mariadb-enterprise-server-innodb-operations/configure-the-innodb-io-threads)
* [Purge Threads](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-purge)
* [Redo Log](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-redo-log)
* [Row Formats](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-row-formats)
* [Undo Log](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-undo-log)

### Operations

* [Configure Page Compression](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-page-compression)
* [Configure the Buffer Pool](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/mariadb-enterprise-server-innodb-operations/configure-the-innodb-buffer-pool)
* [Configure the I/O Threads](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/mariadb-enterprise-server-innodb-operations/configure-the-innodb-io-threads)
* [Configure the Purge Threads](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/mariadb-enterprise-server-innodb-operations/configure-the-innodb-purge-threads)
* [Configure the Redo Log](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/mariadb-enterprise-server-innodb-operations/configure-the-innodb-redo-log)
* [Configure the Undo Log](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/mariadb-enterprise-server-innodb-operations/configure-the-innodb-undo-log)
* [Schema Changes](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/mariadb-enterprise-server-innodb-operations/schema-changes)

## MariaDB documentation

* [InnoDB](https://mariadb.com/docs/server/server-usage/storage-engines/innodb)

<sub>*This page is: Copyright © 2025 MariaDB. All rights reserved.*</sub>

{% @marketo/form formId="4316" %}
