mysql 主键设计最佳方案

mysql 为索引组织表,是必须存在一个主键的,即使未指定一个显示主键列,mysql 也会创建一个隐式的主键列

那我们该如何创建主键索引呢?

主键索引主要就是以下三种形式:
1、自增主键
2、随机主键
3、多列联合主键

我们来分析三种形式的 优缺点
1、自增主键
优点:写入非常友好,顺序写入,不会引发页分裂。
缺点: 如果依赖数据库自增主键的话,对主从表,从表的写入是不友好的,因为需要写入主表后返回主键ID
还有一个隐式的风险为:会有暴露业务数据的风险,举例:可以观察到一个月内你发布了多少商品,和新增了多少订单等
2、随机主键
缺点: 会引发页分裂
3、多列联合主键
缺点: 会引发页分裂,让二级索引变大

从这三种形式来看,是不是还是选择自增主键更好呢? 还有没有更优的方案

我们改正自增主键的缺陷就是更优方案了

主键自增不是让数据库来完成,而让我们业务来完成。我们业务依照一规则(比如雪花算法)生成顺序增长的唯一性ID 用于做数据库的主键即可

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容