一.为什么要全局唯一? 我们在对数据库集群作扩容时,为了保证负载的平衡,需要在不同的Shard之间进行数据的移动, 如果主键不唯一,我们就没办法这样随意的移动数据.起初,我们考虑采用组合主键来解决这个问题. 一般会以user_id和一个自增的photo_id来作为主键,这的确能解决移动数据可能带来的主键冲突问题, 但是在多台MySQL服务器组成的水平分库场景下,每个shard都是master-master的复制方式, 以保证每个Shard一直可写.master-master复制方式必须保证在两台