In informatica gli storage engine, o database engine, un tempo noti come table type, sono librerie per MySQL e i suoi fork che implementano la gestione fisica dei dati. Alcuni dei compiti affidati agli storage engine sono: scrittura e lettura dei record, indicizzazione, cache, transazioni.
Gli storage engine sono un tipo di plugin per MySQL e i suoi fork. Alcuni sono distribuiti insieme a MySQL. Altri sono prodotti da terze parti. Vi sono anche storage engine sviluppati per MariaDB, che sfruttano le sue funzionalità specifiche e non funzionano necessariamente su MySQL. Alcuni sono attivi per default e generalmente possono essere esclusi all'avvio o in fase di compilazione. Altri devono essere abilitati esplicitamente.
In pratica, scegliere uno storage engine piuttosto che un altro significa modificare il modo in cui i dati vengono gestiti. Ad esempio InnoDB è molto performante e assicura un livello ragionevole di consistenza dei dati; MyISAM non supporta le transazioni, ma questo gli permette di semplificare le operazioni di lettura, rendendolo quindi adatto ai grandi data warehouse; Memory scrive le tabelle in memoria ed è quindi indicato per le tabelle temporanee. Altri storage engine possono implementare una gestione dei dati fuori dall'ordinario, dotando quindi il server di funzionalità completamente nuove. Ad esempio CassandraSE permette a MariaDB di interfacciarsi con Apache Cassandra, CONNECT permette a MariaDB di utilizzare i file di testo in diversi formati come tabelle relazionali, mentre ShardQuery, SpiderSE e ScaleDB implementano lo sharding dei dati in modi diversi.