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. 

row format 

 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. 

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 . 

See Also compact row format, compressed row format, compression, dynamic row format, redundant row format, row, table. 

row lock 

 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. 

row-based replication 

 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. 

row-level locking 

 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. 

Ruby 

 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. 

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. 

rw-lock 

 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). 

