使用普通的MySQL自增主键,好处无非是节省点内存(主键索引,和二级索引子节点这里),看起来简单点(应用层不用关心主键生成策略),由于自增,所以页分裂这些出现的概念极小,性能上稍微有保证。
    但是坏处也是有的,比如说双M架构,那这个时候会不会有冲突问题,比如说主库的insert 语句 binlog 还没同步到备库,备库就提供服务了,后续主库拉起来再做互备的时候就主键冲突了。并且如果自增主键用完了,那么会怎么办,那就要改字段类型,改字段类型是会锁表的。
    另外,最大的一点我觉得不好的地方是不太好根据主键后续做单元化,做分库分表。以前参与过的项目根据自定义的 UUID做分库分表我觉得挺好的,能够从 UUID 拆分出用户分表,甚至具体业务线。这个自增ID就没法做到了。