Although  InnoDB  uses the term  row format  for consistency with MySQL syntax, the row format is a property of each table and applies to all rows in that table. See Also column, data files, page, row format, table. The row format of an  InnoDB  table is specified by the  ROW_FORMAT  option or by the innodb_default_row_format  configuration option (introduced in MySQL 5.7.9). Row formats include REDUNDANT ,  COMPACT ,  COMPRESSED , and  DYNAMIC . To view the row format of an  InnoDB  table, issue the  SHOW TABLE STATUS  statement or query  InnoDB  table metadata in the  INFORMATION_SCHEMA .  The disk storage format for  rows  of an  InnoDB table . As  InnoDB  gains new capabilities such as  compression , new row formats are introduced to support the resulting improvements in storage efficiency and performance. See Also compact row format, compressed row format, compression, dynamic row format, redundant row format, row, table.  A  lock  that prevents a row from being accessed in an incompatible way by another  transaction . Other rows in the same table can be freely written to by other transactions. This is the type of  locking  done by  DML  operations on  InnoDB  tables. Contrast with  table locks  used by  MyISAM , or during  DDL  operations on  InnoDB  tables that cannot be done with online DDL ; those locks block concurrent access to the table. See Also DDL, DML, InnoDB, lock, locking, online DDL, table lock, transaction.  A form of  replication  where events are propagated from the  source  specifying how to change individual rows on the  replica . It is safe to use for all settings of the  innodb_autoinc_lock_mode  option. See Also auto-increment locking, innodb_autoinc_lock_mode, replica, replication, source, statement-based replication.  The  locking  mechanism used for  InnoDB  tables, relying on  row locks  rather than  table locks . Multiple transactions  can modify the same table concurrently. Only if two transactions try to modify the same row does one of the transactions wait for the other to complete (and release its row locks). See Also InnoDB, locking, row lock, table lock, transaction.  A programming language that emphasizes dynamic typing and object-oriented programming. Some syntax is familiar to  Perl  developers. There are two popular  Ruby APIs  for developing MySQL applications. (This manual does not cover higher-level Ruby frameworks.) See Also API, Perl, Ruby API.  Two APIs are available for Ruby programmers developing MySQL applications. The MySQL/Ruby API is based on the  libmysqlclient  API library. The Ruby/MySQL API is written to use the native MySQL network protocol (a native driver). For full details, see Section 29.11, “MySQL Ruby APIs” . See Also libmysql, Ruby.  The low-level object that  InnoDB  uses to represent and enforce shared-access  locks  to internal in-memory data structures following certain rules. Contrast with  mutexes , which  InnoDB  uses to represent and enforce exclusive access to internal in-memory data structures. Mutexes and rw-locks are known collectively as  latches . rw-lock  types include  s-locks  (shared locks),  x-locks  (exclusive locks), and  sx-locks  (shared-exclusive locks). 6183 rw-lock Ruby API Ruby row-level locking row-based replication row lock row format