crash, but not yet written into the data files , are reconstructed from the doublewrite buffer . When the database is shut down normally, this type of activity is performed during shutdown by the purge  operation. 

During normal operation, committed data can be stored in the change buffer  for a period of time before being written to the data files. There is always a tradeoff between keeping the data files up-to-date, which introduces performance overhead during normal operation, and buffering the data, which can make shutdown and crash recovery take longer. 

See Also change buffer, commit, crash, data files, doublewrite buffer, InnoDB, purge, redo log. 

## CRUD 

 Acronym for “create, read, update, delete” , a common sequence of operations in database applications. Often denotes a class of applications with relatively simple database usage (basic DDL , DML  and query  statements in SQL ) that can be implemented quickly in any language. See Also DDL, DML, query, SQL. 

## cursor 

 An internal MySQL data structure that represents the result set of an SQL statement. Often used with prepared statements  and dynamic SQL . It works like an iterator in other high-level languages, producing each value from the result set as requested. 

Although SQL usually handles the processing of cursors for you, you might delve into the inner workings when dealing with performance-critical code. 

See Also dynamic SQL, prepared statement, query. 

## D 

data definition language 

See DDL. 

## data dictionary 

 Metadata that keeps track of database objects such as tables , indexes , and table columns . For the MySQL data dictionary, introduced in MySQL 8.0, metadata is physically located in InnoDB file-per-table  tablespace files in the mysql  database directory. For the InnoDB  data dictionary, metadata is physically located in the InnoDB system tablespace . 

Because the MySQL Enterprise Backup  product always backs up the InnoDB  system tablespace, all backups include the contents of the InnoDB  data dictionary. 

See Also column, file-per-table, .frm file, index, MySQL Enterprise Backup, system tablespace, table. 

## data directory 

 The directory under which each MySQL instance  keeps the data files  for InnoDB  and the directories representing individual databases. Controlled by the datadir  configuration option. 

See Also data files, instance. 

## data files 

 The files that physically contain table  and index  data. 

The InnoDB system tablespace , which holds the InnoDB data dictionary  and is capable of holding data for multiple InnoDB  tables, is represented by one or more .ibdata  data files. 

File-per-table tablespaces, which hold data for a single InnoDB  table, are represented by a .ibd  data file. 

General tablespaces (introduced in MySQL 5.7.6), which can hold data for multiple InnoDB  tables, are also represented by a .ibd  data file. 

See Also data dictionary, file-per-table, general tablespace, .ibd file, ibdata file, index, system tablespace, table, tablespace. 

