The MySQL server is built in a modular fashion:
The storage engines manage data storage and index management for
MySQL. The MySQL server communicates with the storage engines
through a defined API.
Each storage engine is a class with each instance of the class
communicating with the MySQL server through a special
handler
interface.
Handlers are instanced on the basis of one handler for each thread
that needs to work with a specific table. For example: If three
connections all start working with the same table, three handler
instances will need to be created.
Once a handler instance is created, the MySQL server issues
commands to the handler to perform data storage and retrieval
tasks such as opening a table, manipulating rows, and managing
indexes.
Custom storage engines can be built in a progressive manner:
Developers can start with a read-only storage engine and later add
support for INSERT
, UPDATE
,
and DELETE
operations, and even later add
support for indexing, transactions, and other advanced operations.