分表怎么选择主键
UUID 与 自增主键
1. 数据库的主键选择
1. UUID
优点:
- 数据拆分、合并存储时可达到全局唯一性
- 应用层生成时,提高数据库吞吐能力
缺点:
- 影响拆入速度,磁盘使用率低,会产生随机IO
- UUID 相对 数字比较大小较慢
- UUID 占空间大
- 读取数据无规律,需要使用 order by
2. 自增ID
优点:
- 相比较 UUID ,自增ID长度小
- 新增的数据永远在后面,对于性能提升较大,对于检索有利
缺点:
-
容易泄露业务量
-
高并发的情况下,竞争自增锁会降低数据库的吞吐能力
-
数据迁移的时候,特别是发生表格合并这种操作的时候比较麻烦
2. 不推荐使用 UUID 作为主键?
在 MySQL 中设计表的时候,MySQL 官方推荐不要使用 uuid 或者不连续不重复的雪花 id(long 形且唯一,单机递增),而是推荐连续自增的主键 id,官方的推荐是 auto_increment。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了