yitter/IdGenerator
golang下的UUID生成
技术译文 | UUID 很火但性能不佳?今天我们细聊一聊
MySQL8索引与调优篇7-索引优化与查询优化
如果打算使用uuid做主键,建议用纯数字且单调递增的算法,并且全局唯一,那么雪花飘移算法就是你的首选
Tips: 用自增主键做关联表建立两表之间的联系时会遇到一个问题(其实就是存在关系的两张表,把它们的自增主键拿出来,在第三张表上存起来,这在我看来是比较通用的做法),这只局限于小项目,不会涉及到扩张问题。也就是说甚至不会分库分表。因为用自增主键作为主键的表,在分布式系统中,是不那么好扩容的,如果我的系统中用了4个独立的数据库,那么在设置自增主键的自增步长时,就应该是从
1,2,3,4
开始,步长为4。这样在分布式系统中就能在数据库层面上做到全局唯一的id。但是分布式系统最大的特点就是体量大,随时都会遇到需要扩容的情况,那么数据库一扩容,重新设置步长也好说,但是之前的数据咋迁移呢?所以现在分布式系统都会用到分布式id生成的算法,在代码层面做到全局唯一,而算法通常也会有机器id作为生成id的机器标识,尽管有上限,但一般都开不了那么多机器。