分表怎么选择主键

UUID 与 自增主键

1. 数据库的主键选择

1. UUID

优点:

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

缺点:

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

2. 自增ID

优点:

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

缺点:

  • 容易泄露业务量

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

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

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

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

posted @   生活是很好玩的  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示