1.2.3 Major Directories: myisam

The next major directory is labelled myisam. We will begin by mentioning that myisam is one of what we call the MySQL storage engine directories.

The MySQL storage engine directories:
heap           -- also known as 'memory'
innodb         -- maintained by Innobase Oy
myisam         -- see next section!
ndb            -- ndb cluster

For example the heap directory contains the source files for the heap storage engine and the ndb directory contains the source files for the ndb storage engine.

But the files in those directories are mostly analogues of what's in the myisam directory, and the myisam directory is sort of a 'template'.

On the myisam directory, you'll find the programs that do file I/O. Notice that the file names begin with the letters mi, by the way. That stands for MyISAM, and most of the important files in this directory start with mi.

File handling programs on mysql-5.0/myisam:

size   name           comment
----   ----           -------
 40301 mi_open.c      for opening
  3593 mi_close.c     for closing
  1951 mi_rename.c    for renaming
+ more mi_*.c programs

Row handling programs on mysql-5.0/myisam:

size   name           comment
----   ----           -------
 29064 mi_delete.c    for deleting
  2562 mi_delete_all.c for deleting all
  6797 mi_update.c    for updating
 32613 mi_write.c     for inserting
+ more mi_*.c programs

Drilling down a bit, you'll also find programs in the myisam directory that handle deleting, updating, and inserting of rows. The only one that's a little hard to find is the program for inserting rows, which we've called mi_write.c instead of mi_insert.c.

Key handling programs on mysql-5.0/myisam:

size   name           comment
----   ----           -------
  4668 mi_rkey.c      for random key searches
  3646 mi_rnext.c     for next-key searches
 15440 mi_key.c       for managing keys
+ more mi_*.c programs

The final notable group of files in the myisam directory is the group that handles keys in indexes.

To sum up: (1) The myisam directory is where you'll find programs for handling files, rows, and keys. You won't find programs for handling columns we'll get to them a bit later. (2) The myisam directory is just one of the handler directories. The programs in the other storage engine directories fulfill about the same functions.