Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Relationship of database (MySql) to an engine (InnoDB)?

There's 10 million articles out there comparing MyISAM to InnoDB (two so-called database engines), which Wikipedia vaguely defines as:

"...the underlying software component that a database management system (DBMS) uses to create, read, update and delete (CRUD) data from a database."

But what does that really mean? Surprisingly, I couldn't find a single article talking about the relationship of a DB to its engine!

How does an engine manifest itself in the concrete, real world? Is it that a database is really just a binary file, and that its "engine" is the .exe that handles all I/O to and from the file? Does the engine handle EXPLAIN AND QEPs?

I guess what I'm asking is: how do you define which responsibilities are MySQL's, and which activities are the responsibility of its underlying engine?

like image 656
IAmYourFaja Avatar asked Jul 13 '12 12:07

IAmYourFaja


1 Answers

Does this picture help?

enter image description here

Taken from: http://forge.mysql.com/wiki/MySQL_Internals_Custom_Engine#Overview

like image 93
a_horse_with_no_name Avatar answered Nov 15 '22 07:11

a_horse_with_no_name