Since MySQL version 4.1, InnoDB has provided two options for
        how tables are stored on disk. You can choose to create a new
        table and its indexes in the shared system tablespace
        (corresponding to the set of files named
        ibdata files), along with other internal
        InnoDB system information. Or, you can chose to use a separate
        file (an .ibd file) to store a new table and
        its indexes.
      
        The tablespace style used for new tables is determined by the
        setting of the configuration parameter innodb_file_per_table
        at the time a table is created. Previously, the only way to set
        this parameter was in the MySQL option file
        (my.cnf or my.ini), and
        changing it required shutting down and restarting the server.
        Beginning with the InnoDB storage engine, the configuration parameter
        innodb_file_per_table is dynamic, and can be set
        ON or OFF using the
        SET GLOBAL command. The default setting is
        OFF, so new tables and indexes are created in
        the system tablespace. Dynamically changing the value of this
        parameter requires the SUPER privilege and
        immediately affects the operation of all connections.
      
        Tables created when innodb_file_per_table is disabled cannot
        use the new compression capability, or use the new row format
        DYNAMIC. Tables created when innodb_file_per_table is
        enabled can use those new features, and each table and its
        indexes will be stored in a new .ibd file.
      
        The ability to change the setting of innodb_file_per_table
        dynamically is useful for testing. As noted above, the parameter
        innodb_file_format is also dynamic, and must be set to
        “Barracuda” to create new compressed tables, or tables that
        use the new row format DYNAMIC. Since both parameters are
        dynamic, it is easy to experiment with these table formats and
        the downgrade procedure described in
        Chapter 11, Downgrading the InnoDB Storage Engine without a system shutdown
        and restart.
      
        Note that the InnoDB storage engine can add and drop a table’s
        secondary indexes without re-creating the table, but must
        recreate the table when you change the clustered (primary key)
        index (see Chapter 2, Fast Index Creation in the InnoDB Storage Engine). When a table
        is recreated as a result of creating or dropping an index, the
        table and its indexes will be stored in the shared system
        tablespace or in its own .ibd file just as if it were created
        using a CREATE TABLE command (and depending on the setting of
        innodb_file_per_table). When an index is created without
        rebuilding the table, the index is stored in the same file as
        the clustered index, regardless of the setting of
        innodb_file_per_table.
      
This is the User’s Guide for InnoDB storage engine 1.1 for MySQL 5.5, generated on 2010-04-13 (revision: 19994) .

