All pages
Powered by GitBook
1 of 1

Loading...

InnoDB Introduction

An overview of the InnoDB storage engine, detailing its support for ACID transactions, row-level locking, and crash recovery.

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 and MariaDB Community Server.

  • Is a general purpose storage engine.

  • Is transactional and well-suited for online transactional processing (OLTP) workloads.

  • Is ACID-compliant.

Feature Summary

Feature
Detail
Resources

Examples

Creating an InnoDB Table

Resources

Architecture

  • Background Thread Pool

Operations

MariaDB documentation

This page is: Copyright © 2025 MariaDB. All rights reserved.

Performs well for mixed read-write workloads.

  • Supports online DDL.

  • Default Row Format

    Dynamic

    ACID-compliant

    Yes

    XA Transactions

    Yes

    Primary Keys

    Yes

    InnoDB Primary Keys

    Auto-Increment

    Yes

    Sequences

    Yes

    InnoDB Sequences

    Foreign Keys

    Yes

    InnoDB

    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

    Data-at-Rest Encryption

    Yes

    High Availability (HA)

    Yes

    • •

    Main Memory Caching

    Yes

    Transaction Logging

    Yes

    • •

    Garbage Collection

    Yes

    Online Schema changes

    Yes

    Non-locking Reads

    Yes

    Row Locking

    Yes

    Redo Log
  • Row Formats

  • Undo Log

  • Configure the Redo Log
  • Configure the Undo Log

  • Schema Changes

  • Storage Engine

    InnoDB

    Availability

    All ES and CS versions

    MariaDB Enterprise Server

    Workload Optimization

    Transactional

    Table Orientation

    Row

    Buffer Pool
    I/O Threads
    Purge Threads
    Configure Page Compression
    Configure the Buffer Pool
    Configure the I/O Threads
    Configure the Purge Threads
    InnoDB
    CREATE DATABASE hq_sales;
    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;
    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 |
    +--------------+------------+--------+
    InnoDB Row Formats
    InnoDB Dynamic Row Format
    InnoDB AUTO_INCREMENT Columns
    Foreign Keys
    Configure InnoDB Page Compression
    MariaDB Replication
    InnoDB Buffer Pool
    InnoDB Redo Log (Crash Safety)
    InnoDB Undo Log (MVCC)
    InnoDB Purge Threads
    InnoDB Schema Changes
    Galera Cluster
    MariaDB Enterprise Server