Aria (storage engine)

Last updated
Aria
Original author(s) AskMonty.org
Developer(s) Monty Program Ab
Stable release
MariaDB 10.0.12 / June 16, 2014;9 years ago (2014-06-16)
Preview release
All
Written in C++
Platform All
Type Database engine
License GNU GPLv2
Website mariadb.com/kb/en/aria-storage-engine/

Aria is a storage engine for the MariaDB and MySQL relational database management systems. Its goal is to make a crash-safe alternative to MyISAM. It is not transactional.

Contents

Aria has been in development since 2007 and was first announced by Michael "Monty" Widenius on his blog. [1] Aria is used for internal temporary tables in MariaDB, a community-developed branch of the MySQL database led by Widenius. Aria is not shipped with MySQL or Percona Server.

Aria was initially named "Maria", as a reference to Monty's youngest child. [2] It was renamed Aria in 2010 to avoid confusion with the main database it is developed for, MariaDB. [3] Chris Tooley, who won a contest to suggest the name, wrote, "Aria is Maria without the 'M'; also it is a pleasant musical term." [4]

Features

Aria is very similar to MyISAM, but its purpose is to be a crash-safe alternative to MyISAM.

Aria does not support foreign keys and, currently, transactions.

Aria supports:

Files structure

Non-partitioned Aria tables consist of three physical files:

The .frm file contains the table definition (this file exists for all storage engines which write data to disk). The .MAD file contains the data. The .MAI file contains the indexes.

Formats

Three table formats are available for Aria tables:

PAGE is the only format available for "transactional" tables. It makes Aria tables crash-safe.

FIXED and DYNAMIC are the same formats used by MyISAM, and have been mainly implemented for compatibility. However, MyISAM's COMPRESSED format is not available in Aria.

In order to set the table format, one can use the ROW_FORMAT option in a CREATE TABLE or ALTER TABLE command.

See also

Related Research Articles

<span class="mw-page-title-main">MySQL</span> SQL database engine software

MySQL is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database organizes data into one or more data tables in which data may be related to each other; these relations help structure the data. SQL is a language that programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.

ISAM, an acronym for Indexed Sequential Access Method, is a method for creating, maintaining, and manipulating computer files of data so that records can be retrieved sequentially or randomly by one or more keys. Indexes of key fields are maintained to achieve fast retrieval of required file records in indexed files. IBM originally developed ISAM for mainframe computers, but implementations are available for most computer systems.

<span class="mw-page-title-main">Michael Widenius</span> Finnish software programmer

Ulf Michael Widenius is the main author of the original version of the open source MySQL database, a founding member of the MySQL AB company and CTO of the MariaDB Corporation AB. Additionally, he is a founder and general partner at venture capital firm OpenOcean.

The following tables compare general and technical information for a number of relational database management systems. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.

InnoDB is a storage engine for the database management system MySQL and MariaDB. Since the release of MySQL 5.5.5 in 2010, it replaced MyISAM as MySQL's default table type. It provides the standard ACID-compliant transaction features, along with foreign key support. It is included as standard in most binaries distributed by MySQL AB, the exception being some OEM versions.

The Access Database Engine is a database engine on which several Microsoft products have been built. The first version of Jet was developed in 1992, consisting of three modules which could be used to manipulate a database.

MyISAM was the default storage engine for the MySQL relational database management system versions prior to 5.5 released in December 2009. It is based on the older ISAM code, but it has many useful extensions.

Falcon is a discontinued transactional storage engine being developed for the MySQL relational database management system. Development was stopped after Oracle purchased MySQL. It was based on the Netfrastructure database engine. Falcon was designed to take advantage of Sun's ZFS file system.

Federated is a storage engine for the MySQL MariaDB relational database management system that allows creation of a table that is a local representation of a foreign (remote) table. It uses the MySQL client library API as a data transport, treating remote tables as if they were located on the local server. Each Federated table that is defined there is one .frm. The actual data can exist on a local or remote MySQL instance.

Archive is a storage engine for the MySQL relational database management system. Users can use this analytic storage engine to create a table that is “archive” only. Data cannot be deleted from this table, only added. The Archive engine uses a compression strategy based on the zlib library and it packs the rows using a bit header to represent nulls and removes all whitespace for character type fields. When completed, the row is inserted into the compression buffer and flushed to disk by an explicit flush table, a read, or the closing of the table.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:

<span class="mw-page-title-main">Drizzle (database server)</span>

Drizzle is a discontinued free software/open-source relational database management system (DBMS) that was forked from the now-defunct 6.0 development branch of the MySQL DBMS.

<span class="mw-page-title-main">MariaDB</span> Database management system

MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Development is led by some of the original developers of MySQL, who forked it due to concerns over its acquisition by Oracle Corporation in 2009.

The MySQL Datacontroller storage engine for the MySQL relational database management system is a storage engine which allows a user to create a table that is a local representation of a foreign (remote) table. The foreign table can be located into another storage engine like Oracle or Microsoft SQL Server (MSSQL).

TokuDB is an open-source, high-performance storage engine for MySQL and MariaDB. It achieves this by using a fractal tree index. It is scalable, ACID and MVCC compliant, provides indexing-based query improvements, offers online schema modifications, and reduces replication lag for both hard disk drives and flash memory.

This is a comparison between notable database engines for the MySQL database management system (DBMS). A database engine is the underlying software component that a DBMS uses to create, read, update and delete (CRUD) data from a database.

<span class="mw-page-title-main">Oracle NoSQL Database</span> Distributed database

Oracle NoSQL Database is a NoSQL-type distributed key-value database from Oracle Corporation. It provides transactional semantics for data manipulation, horizontal scalability, and simple administration and monitoring.

In relational databases a virtual column is a table column whose value(s) is automatically computed using other columns values, or another deterministic expression. Virtual columns are defined of SQL:2003 as Generated Column, and are only implemented by some DBMSs, like MariaDB, SQL Server, Oracle, PostgreSQL, SQLite and Firebird.

The following outline is provided as an overview of and topical guide to MySQL:

TiDB is an open-source NewSQL database that supports Hybrid Transactional and Analytical Processing (HTAP) workloads. Designed to be MySQL compatible, it is developed and supported primarily by PingCAP and licensed under Apache 2.0. It is also available as a paid product. TiDB drew its initial design inspiration from Google's Spanner and F1 papers.

References

  1. Aria – AskMonty KnowledgeBase Archived May 31, 2009, at the Wayback Machine
  2. "Aria FAQ - AskMonty KnowledgeBase". Archived from the original on 2010-08-22. Retrieved 2010-11-10.
  3. "Rename Maria". askmonty.org. Archived from the original on 2010-05-03. Retrieved 2011-05-19.
  4. "Rename Maria Contest Winner!". GNOME Blogs. Archived from the original on 2010-07-23. Retrieved 2018-01-21.