Memory (storage engine)

Summary

MEMORY is a storage engine for MySQL and MariaDB relational database management systems, developed by Oracle and MariaDB. Before the version 4.1 of MySQL it was called Heap.

MEMORY
Developer(s)Oracle and MariaDB
Operating systemCross-platform
TypeDatabase engine
LicenseGNU General Public License

The SHOW ENGINES command describes MEMORY as: Hash based, stored in memory, useful for temporary tables.

MEMORY writes table data in-memory. While the table structures are persisted on-disk, the rows in MEMORY tables are lost when MySQL stops.

Use cases edit

MEMORY is designed to store data that must be accessed quickly, for example caches, or intermediate data that needs to be transformed before storing it to regular tables.

In MariaDB and before MySQL 5.6, MEMORY was used for internal temporary tables, e.g. to materialize the intermediate results of a query. However, MEMORY tables don't support BLOB and TEXT types, and the user may limit the total size of MEMORY tables and temporary tables. When an internal temporary table could not be created with the MEMORY engine, it had to be created on disk, which is slower. For this reason Percona Server implemented improvements to MEMORY to support BLOB and TEXT.

In MySQL 8.0, by default the TempTable engine is used in place of MEMORY for internal temporary tables.

See also edit

External links edit

  • The MEMORY Storage Engine in the MySQL documentation
  • MEMORY in the MariaDB KnowledgeBase