Memoria (motor de almacenamiento)


MEMORY es un motor de almacenamiento para sistemas de gestión de bases de datos relacionales MySQL y MariaDB , desarrollado por Oracle y MariaDB. Antes de la versión 4.1 de MySQL se llamaba Heap.

El SHOW ENGINEScomando describe MEMORY como: Basado en hash, almacenado en memoria, útil para tablas temporales .

MEMORY escribe los datos de la tabla en la memoria. Si bien las estructuras de las tablas se conservan en el disco, las filas de las tablas MEMORY se pierden cuando MySQL se detiene.

MEMORY está diseñado para almacenar datos a los que se debe acceder rápidamente, por ejemplo, cachés o datos intermedios que deben transformarse antes de almacenarlos en tablas regulares.

En MariaDB y antes de MySQL 5.6, MEMORY se usaba para tablas temporales internas, por ejemplo, para materializar los resultados intermedios de una consulta. Sin embargo, las tablas MEMORY no admiten los tipos BLOB y TEXT, y el usuario puede limitar el tamaño total de las tablas MEMORY y las tablas temporales. Cuando no se podía crear una tabla temporal interna con el motor MEMORY, se tenía que crear en disco, que es más lento. Por esta razón , Percona Server implementó mejoras en MEMORY para admitir BLOB y TEXT.

En MySQL 8.0, por defecto se usa el motor TempTable en lugar de MEMORY para las tablas temporales internas.