6192 The system tablespace supports tables that use  REDUNDANT ,  COMPACT , and  DYNAMIC  row formats. System tablespace support for the  DYNAMIC  row format was added in MySQL 5.7.6. The  rows  of an  InnoDB  table are organized into an index structure known as the  clustered index , with entries sorted based on the  primary key  columns of the table. Data access is optimized for queries that filter and sort on the primary key columns, and each index contains a copy of the associated primary key columns for each entry. Modifying values for any of the primary key columns is an expensive operation. Thus an important aspect of  InnoDB  table design is choosing a primary key with columns that are used in the most important queries, and keeping the primary key short, with rarely changing values. See Also backup, clustered index, compact row format, compressed row format, compression, dynamic row format, Fast Index Creation, file-per-table, .ibd file, index, off-page column, primary key, redundant row format, row, system tablespace, tablespace.  A lock that prevents any other  transaction  from accessing a table.  InnoDB  makes considerable effort to make such locks unnecessary, by using techniques such as  online DDL ,  row locks  and  consistent reads  for processing  DML  statements and  queries . You can create such a lock through SQL using the  LOCK TABLE statement; one of the steps in migrating from other database systems or MySQL storage engines is to remove such statements wherever practical. See Also consistent read, DML, lock, locking, online DDL, query, row lock, table, transaction. See full table scan. See statistics.  Obsolete synonym for  storage engine . We refer to  InnoDB  tables,  MyISAM  tables, and so on. See Also InnoDB, storage engine. The  system tablespace  contains the  InnoDB data dictionary , and prior to MySQL 5.6 holds all other  InnoDB tables by default.  A data file that can hold data for one or more  InnoDB tables  and associated  indexes . The  innodb_file_per_table  option, enabled by default in MySQL 5.6 and higher, allows tables to be created in their own tablespaces. File-per-table tablespaces support features such as efficient storage of  off-page columns , table compression, and transportable tablespaces. See Section 15.6.3.2, “File-Per-Table Tablespaces” for details. InnoDB  introduced general tablespaces in MySQL 5.7.6. General tablespaces are shared tablespaces created using  CREATE TABLESPACE  syntax. They can be created outside of the MySQL data directory, are capable of holding multiple tables, and support tables of all row formats. MySQL NDB Cluster also groups its tables into tablespaces. See Section 23.5.10.1, “NDB Cluster Disk Data Objects”  for details. See Also compressed row format, data dictionary, data files, file-per-table, general tablespace, index, innodb_file_per_table, system tablespace, table.  A programming language originating in the Unix scripting world. Sometimes extended by code written in  C ,  C++ , or  Java . For the open-source Tcl  API  for MySQL, see Section 29.12, “MySQL Tcl API” . See Also API. Tcl table type table statistics tablespace table scan table lock