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:
    
-- ENGINE=INNODB not needed unless you have set a different
-- default storage engine.
CREATE TABLE t1 (i INT) ENGINE = INNODB;
-- Simple table definitions can be switched from one to another.
CREATE TABLE t2 (i INT) ENGINE = CSV;
CREATE TABLE t3 (i INT) ENGINE = MEMORY;
      When you omit the ENGINE option, the default
      storage engine is used. The default engine is
      InnoDB in MySQL 9.4. You
      can specify the default engine 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 for the current session by
      setting the
      default_storage_engine variable:
    
SET default_storage_engine=NDBCLUSTER;
      The storage engine for TEMPORARY tables created
      with CREATE
      TEMPORARY TABLE can be set separately from the engine
      for permanent tables by setting the
      default_tmp_storage_engine,
      either at startup or at runtime.
    
      To convert a table from one storage engine to another, use an
      ALTER TABLE statement that
      indicates the new engine:
    
ALTER TABLE t ENGINE = InnoDB;See Section 15.1.24, “CREATE TABLE Statement”, and Section 15.1.11, “ALTER TABLE Statement”.
      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. For example, in a replication
      setup, perhaps your source server uses InnoDB
      tables for maximum safety, but the replica servers use other
      storage engines for speed at the expense of durability or
      concurrency.
    
      By default, a warning is generated whenever
      CREATE TABLE or
      ALTER TABLE cannot use the default
      storage engine. To prevent confusing, unintended behavior if the
      desired engine is unavailable, enable the
      NO_ENGINE_SUBSTITUTION SQL mode.
      If the desired engine is unavailable, this setting produces an
      error instead of a warning, and the table is not created or
      altered. See Section 7.1.11, “Server SQL Modes”.
    
MySQL may store a table's index and data in one or more other files, depending on the storage engine. Table and column definitions are stored in the MySQL data dictionary. 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 11.2.4, “Mapping of Identifiers to File Names”.