lock ranges of index records and  gaps , with each transaction acquiring some locks but not others due to a timing issue.  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.  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.  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.  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.  A type of  index  where index storage is optimized to process  ORDER BY  column  DESC  clauses. See Also index.  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.  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.  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 . 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. 6147 deadlock detection delete delete buffering denormalized descending index dictionary object cache dirty page dirty read