When you create a new table, you can specify which storage engine
      to use by adding an ENGINE table option to the
      CREATE TABLE statement:
    
CREATE TABLE t (i INT) ENGINE = INNODB;
      If you omit the ENGINE option, the default
      storage engine is used. Normally, this is
      MyISAM, but you can change it by using the
      --default-storage-engine server
      startup option, or by setting the
      default-storage-engine option in the
      my.cnf configuration file.
    
      You can set the default storage engine to be used during the
      current session by setting the
      storage_engine variable:
    
SET storage_engine=MYISAM;
      When MySQL is installed on Windows using the MySQL Configuration
      Wizard, the InnoDB storage engine can be
      selected as the default instead of MyISAM. See
      Section 2.3.4.5, “The Database Usage Dialog”.
    
      To convert a table from one storage engine to another, use an
      ALTER TABLE statement that
      indicates the new engine:
    
ALTER TABLE t ENGINE = MYISAM;
      See Section 12.1.17, “CREATE TABLE Syntax”, and
      Section 12.1.7, “ALTER TABLE Syntax”.
    
      If you try to use a storage engine that is not compiled in or that
      is compiled in but deactivated, MySQL instead creates a table
      using the default storage engine, usually
      MyISAM. This behavior is convenient when you
      want to copy tables between MySQL servers that support different
      storage engines. (For example, in a replication setup, perhaps
      your master server supports transactional storage engines for
      increased safety, but the slave servers use only non-transactional
      storage engines for greater speed.)
    
This automatic substitution of the default storage engine for unavailable engines can be confusing for new MySQL users. A warning is generated whenever a storage engine is automatically changed.
      For new tables, MySQL always creates an .frm
      file to hold the table and column definitions. The table's index
      and data may be stored in one or more other files, depending on
      the storage engine. The server creates the
      .frm file above the storage engine level.
      Individual storage engines create any additional files required
      for the tables that they manage. If a table name contains special
      characters, the names for the table files contain encoded versions
      of those characters as described in
      Section 8.2.3, “Mapping of Identifiers to File Names”.
    
A database may contain tables of different types. That is, tables need not all be created with the same storage engine.


User Comments
Add your own comment.