Skip to content

MyRocks limitations

Yoshinori Matsunobu edited this page May 4, 2017 · 13 revisions

MyRocks currently lacks a large number of features compared to InnoDB:

  • Online DDL is not supported yet, but fast alter table add and drop indexes are supported.
  • EXCHANGE PARTITION does not work in MyRocks yet
  • Lack of SAVEPOINT support
  • Transportable Tablespace, Foreign Key, Spatial Index, and Fulltext Index are not supported
  • Gap Lock support - see MyRocks Row Locking - ROW based binary logging must be used. Statement based binary logging may cause data inconsistency between master and slave because MyRocks does not support Next-Key Locking.
  • "*_bin" (e.g. latin1_bin) or binary collation should be used on CHAR/VARCHAR indexed columns. By default, MyRocks prevents creating indexes with non-binary collations (including latin1). You can optionally use it by setting rocksdb_strict_collation_exceptions='t1' (table names with regex format), but non_binary covering indexes other than latin1 (excluding german1) still require a primary key lookup to return the CHAR/VARCHAR column.
  • Either ORDER BY DESC or ASC is slow. This is because of "Prefix Key Encoding" feature in RocksDB. See http://www.slideshare.net/matsunobu/myrocks-deep-dive/58 for details. By default, ascending scan is faster but descending scan is slower. By configuring "reverse column family”, descending scan is faster but ascending scan is slower. Note that InnoDB also imposes a cost when the index is scanned in the opposite order.
Clone this wiki locally