> uber blog [Why Uber Engineering Switched from Postgres to MySQL](https://eng.uber.com/mysql-migration/) To say they switched to mysql is misleading. They switched to schemaless - something they created to fit their requirements. * Schemaless a database sharding layer * our scalable, fault-tolerant and highly available datastore * is an append-only sparse three dimensional persistent hash map * a relatively thin layer on top of MySQL for routing requests to the right database. * The basic entity of data is called a cell. It is immutable, and once written, it cannot be overwritten. (In special cases, we can delete old records.) * It does not enforce any schema on the data stored within it; it just stores JSON objects. > Schemaless uniquely supports efficient, eventually consistent secondary indexes over the cells' fields. From the article linked above > The most important architectural difference is that while Postgres > directly maps index records to on-disk locations, InnoDB maintains a secondary structure. > Instead of holding a pointer to the on-disk row location (like the ctid does in Postgres), InnoDB secondary index records hold a > pointer to the primary key value. See also [migrate hundreds of millions of rows](http://eng.uber.com/mezzanine-migration/).
https://reddit.com/r/webdev/comments/8z8iou/this_is_how_i_explain_my_designer_to_create_an/e2h6huz?context=3