# Aria Storage Formats

The [Aria](https://mariadb.com/docs/server/server-usage/storage-engines/aria) storage engine supports three different table storage formats.

These are FIXED, DYNAMIC and PAGE, and they can be set with the ROW FORMAT option in the [CREATE TABLE](https://mariadb.com/docs/server/server-usage/tables/create-table) statement. PAGE is the default format, while FIXED and DYNAMIC are essentially the same as the [MyISAM formats](https://mariadb.com/docs/server/server-usage/storage-engines/myisam-storage-engine/myisam-storage-formats).

The [SHOW TABLE STATUS](https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/show/show-table-status) statement can be used to see the storage format used by a table.

## Fixed-length

Fixed-length (or static) tables contain records of a fixed-length. Each column is the same length for all records, regardless of the actual contents. It is the default format if a table has no BLOB, TEXT, VARCHAR or VARBINARY fields, and no ROW FORMAT is provided. You can also specify a fixed table with ROW\_FORMAT=FIXED in the table definition.

Tables containing BLOB or TEXT fields cannot be FIXED, as by design these are both dynamic fields.

Fixed-length tables have a number of characteristics:

* fast, since MariaDB will always know where a record begins
* easy to cache
* take up more space than dynamic tables, as the maximum amount of storage space are allocated to each record.
* reconstructing after a crash is uncomplicated due to the fixed positions
* no fragmentation or need to re-organize, unless records have been deleted and you want to free the space up.

## Dynamic

Dynamic tables contain records of a variable length. It is the default format if a table has any `BLOB`, `TEXT`, `VARCHAR` or `VARBINARY` fields, and no `ROW FORMAT` is provided. You can also specify a `DYNAMIC` table with `ROW_FORMAT=DYNAMIC` in the table definition.

Dynamic tables have a number of characteristics

* Each row contains a header indicating the length of the row.
* Rows tend to become fragmented easily. UPDATING a record to be longer will likely ensure it is stored in different places on the disk.
* All string columns with a length of four or more are dynamic.
* They require much less space than fixed-length tables.
* Restoring after a crash is more complicated than with `FIXED` tables.

## Page

Page format is the default format for Aria tables, and is the only format that can be used if `TRANSACTIONAL=1`.

Page tables have a number of characteristics:

* It's cached by the page cache, which gives better random performance as it uses fewer system calls.
* Does not fragment as easily as the `DYNAMIC` format during `UPDATES`. The maximum number of fragments are very low.
* Updates more quickly than dynamic tables.
* Has a slight storage overhead, mainly notable on very small rows
* Slower to perform a full table scan
* Slower if there are multiple duplicated keys, as Aria will first write a row, then keys, and only then check for duplicates

## Transactional

See [Aria Storage Engine](https://mariadb.com/docs/server/server-usage/storage-engines/aria/aria-storage-engine) for the impact of the `TRANSACTIONAL` option on the row format.

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mariadb.com/docs/server/server-usage/storage-engines/aria/aria-storage-formats.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
