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. 

## table lock 

 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. 

## table scan 

See full table scan. 

## table statistics 

See statistics. 

## table type 

 Obsolete synonym for storage engine . We refer to InnoDB  tables, MyISAM  tables, and so on. See Also InnoDB, storage engine. 

## tablespace 

 A data file that can hold data for one or more InnoDB tables  and associated indexes . 

The system tablespace  contains the InnoDB data dictionary , and prior to MySQL 5.6 holds all other InnoDB tables by default. 

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. 

## Tcl 

 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. 

