DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) innodb-file-space

Info Catalog (mysql.info) innodb-disk-io (mysql.info) file-space-management (mysql.info) innodb-file-defragmenting
 
 14.2.14.2 File Space Management
 ...............................
 
 The data files that you define in the configuration file form the
 tablespace of `InnoDB'. The files are simply concatenated to form the
 tablespace. There is no striping in use. Currently, you cannot define
 where within the tablespace your tables are allocated. However, in a
 newly created tablespace, `InnoDB' allocates space starting from the
 first data file.
 
 The tablespace consists of database pages with a default size of 16KB.
 The pages are grouped into extents of 64 consecutive pages. The `files'
 inside a tablespace are called segments in `InnoDB'.  The term
 `rollback segment' is somewhat confusing because it actually contains
 many tablespace segments.
 
 Two segments are allocated for each index in `InnoDB'. One is for
 non-leaf nodes of the B-tree, the other is for the leaf nodes. The idea
 here is to achieve better sequentiality for the leaf nodes, which
 contain the data.
 
 When a segment grows inside the tablespace, `InnoDB' allocates the
 first 32 pages to it individually. After that `InnoDB' starts to
 allocate whole extents to the segment. `InnoDB' can add to a large
 segment up to 4 extents at a time to ensure good sequentiality of data.
 
 Some pages in the tablespace contain bitmaps of other pages, and
 therefore a few extents in an `InnoDB' tablespace cannot be allocated
 to segments as a whole, but only as individual pages.
 
 When you ask for available free space in the tablespace by issuing a
 `SHOW TABLE STATUS' statement, `InnoDB' reports the extents that are
 definitely free in the tablespace. `InnoDB' always reserves some
 extents for cleanup and other internal purposes; these reserved extents
 are not included in the free space.
 
 When you delete data from a table, `InnoDB' contracts the corresponding
 B-tree indexes. Whether the freed space becomes available for other
 users depends on whether the pattern of deletes frees individual pages
 or extents to the tablespace. Dropping a table or deleting all rows
 from it is guaranteed to release the space to other users, but remember
 that deleted rows are physically removed only in an (automatic) purge
 operation after they are no longer needed for transaction rollbacks or
 consistent reads. (See  innodb-multi-versioning.)
 
Info Catalog (mysql.info) innodb-disk-io (mysql.info) file-space-management (mysql.info) innodb-file-defragmenting
automatically generated byinfo2html