万能的坛,问个纠结的问题。
我们在做一个手机端+rails 服务器的应用。
手机端用户创建的记录,需要主键值,如果用自增,将来传到服务器上,肯定会跟别的用户冲突。如果再加上外键关系,就乱上加乱。
我们考虑用 UUID,让各个用户的 id 不再一样,但是,UUID 是 char(36), 如果是 mysql 做主键会有性能问题,我们正在纠结这事,你们怎么解决的丫?
UUID 的问题:
http://hi.baidu.com/thinkinginlamp/blog/item/c609d10979710e81d0581b60.html
对于InnoDB这种聚集主键类型的引擎来说,数据会按照主键进行排序,由于UUID的无序性,InnoDB会产生巨大的IO压力,此时不适合使用UUID做物理主键,可以把它作为逻辑主键,物理主键依然使用自增ID。