lock ranges of index records and gaps , with each transaction acquiring some locks but not others due to a timing issue. 

For background information on how deadlocks are automatically detected and handled, see Section 15.7.5.2, “Deadlock Detection” . For tips on avoiding and recovering from deadlock conditions, see Section 15.7.5.3, “How to Minimize and Handle Deadlocks” . 

See Also gap, lock, transaction. 

## deadlock detection 

 A mechanism that automatically detects when a deadlock  occurs, and automatically rolls back  one of the transactions  involved (the victim ). Deadlock detection can be disabled using the innodb_deadlock_detect configuration option. 

See Also deadlock, rollback, transaction, victim. 

## delete 

 When InnoDB  processes a DELETE  statement, the rows are immediately marked for deletion and no longer are returned by queries. The storage is reclaimed sometime later, during the periodic garbage collection known as the purge  operation. For removing large quantities of data, related operations with their own performance characteristics are TRUNCATE  and DROP . 

See Also drop, purge, truncate. 

## delete buffering 

 The technique of storing changes to secondary index pages, resulting from DELETE  operations, in the change buffer  rather than writing the changes immediately, so that the physical writes can be performed to minimize random I/O. (Because delete operations are a two-step process, this operation buffers the write that normally marks an index record for deletion.) It is one of the types of change buffering ; the others are insert buffering and purge buffering . 

See Also change buffer, change buffering, insert buffer, insert buffering, purge buffering. 

## denormalized 

 A data storage strategy that duplicates data across different tables, rather than linking the tables with foreign keys  and join  queries. Typically used in data warehouse  applications, where the data is not updated after loading. In such applications, query performance is more important than making it simple to maintain consistent data during updates. Contrast with normalized . 

See Also data warehouse, foreign key, join, normalized. 

## descending index 

 A type of index  where index storage is optimized to process ORDER BY column  DESC  clauses. See Also index. 

## dictionary object cache 

 The dictionary object cache stores previously accessed data dictionary  objects in memory to enable object reuse and minimize disk I/O. An LRU -based eviction strategy is used to evict least recently used objects from memory. The cache is comprised of several partitions that store different object types. 

For more information, see Section 14.4, “Dictionary Object Cache” . See Also data dictionary, LRU. 

## dirty page 

 A page  in the InnoDB buffer pool  that has been updated in memory, where the changes are not yet written ( flushed ) to the data files . The opposite of a clean page . See Also buffer pool, clean page, data files, flush, page. 

## dirty read 

 An operation that retrieves unreliable data, data that was updated by another transaction but not yet committed . It is only possible with the isolation level  known as read uncommitted . 

