Skip to content

Instantly share code, notes, and snippets.

@risent
Last active August 9, 2016 03:33
Show Gist options
  • Save risent/6a7355bf7e2442d26315ca939a459b4f to your computer and use it in GitHub Desktop.
Save risent/6a7355bf7e2442d26315ca939a459b4f to your computer and use it in GitHub Desktop.

Uber从 PostgreSQL 迁移到 MySQL

  1. PostgreSQL从9.2升级到9.5/9.6 的难度跟不比 从 PostgreSQL切换到MySQL容易多少
  2. PostgreSQL的replication比起MySQL的复杂度还是高很多,同时由于直接基于磁盘位置的信息replication比起MySQL的基于逻辑的replication 更新操作产生大量的数据需要同步,对于同机房使用GB级别带宽相连的机器不会成为什么大问题。但是对于像Uber这样规模大后需要异地多数据中心之间的同步就几乎无法正常工作了。
  3. 关于两者之间的索引,PostgreSQL直接索引的是磁盘位置信息,而MySQL只有主键索引中有磁盘位置信息,其他的索引都是指向主键,相当于是主键这里做了一层抽象。单纯在这个地方上看MySQL通过抽象层换取了数据的隔离,减少了不同层面之间的耦合,算是一个很不错的设计。
  4. 在内存管理上PostgreSQL完全是交给操作系统去处理,所以对于创建一个完全存储在内存中的表这样的需求是没法实现的。二MySQL在存储层面做了抽象,可以采用不同的存储引擎,内存是其支持的存储引擎之一。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment