数据库的设计
低效主键
自增ID:可靠性不高,安全性不高,局部唯一性
业务字段做主键:如卡号、身份证号码、电话号码;
高效主键
淘宝主键:订单ID=时间+去重字段+用户Id后6位尾号(全局唯一性,对分布式系统查询友好)
推荐的主键设计
非核心业务:对应表的主键自增ID,如告警、日志、监控等信息。
核心业务:主键设计至少应该是全局唯一且单调递增;全局唯一保证在各系统之间是唯一的,单调递增是希望插入时不影响数据库性能。这里最简单的一种主键设计:UUID
UUIDt特点:全局唯一、占用36字节、数据无序、插入性能差
UUID=时间+UUID版本(16字节)- 时钟序列(4字节)- MAC地址(12字节)
MySQL8可以使用uuid_to_bin(@uuid,true)将UUID转化为有序的UUID
数据库表的设计原则
数据表的个数越少越好
数据表中的字段个数越少越好
数据表中的联合主键的字段个数越少越好
使用主键和外键越多越好

浙公网安备 33010602011771号