分表怎么选择主键

UUID 与 自增主键

1. 数据库的主键选择

1. UUID

优点:

  • 数据拆分、合并存储时可达到全局唯一性
  • 应用层生成时,提高数据库吞吐能力

缺点:

  • 影响拆入速度,磁盘使用率低,会产生随机IO
  • UUID 相对 数字比较大小较慢
  • UUID 占空间大
  • 读取数据无规律,需要使用 order by

2. 自增ID

优点:

  • 相比较 UUID ,自增ID长度小
  • 新增的数据永远在后面,对于性能提升较大,对于检索有利

缺点:

  • 容易泄露业务量

  • 高并发的情况下,竞争自增锁会降低数据库的吞吐能力

  • 数据迁移的时候,特别是发生表格合并这种操作的时候比较麻烦

2. 不推荐使用 UUID 作为主键?

在 MySQL 中设计表的时候,MySQL 官方推荐不要使用 uuid 或者不连续不重复的雪花 id(long 形且唯一,单机递增),而是推荐连续自增的主键 id,官方的推荐是 auto_increment。

posted @ 2022-06-22 09:00  生活是很好玩的  阅读(80)  评论(0编辑  收藏  举报