雪花算法和Mysql自增的优缺点
雪花算法和Mysql自动增量的优缺点如下:
雪花算法的优点是:
1,就不重复了。
2、井然有序,不会造成空间浪费和随意插入影响性能。
3,生成很快,特别是比UUid快很多。
4,比UUid小。
缺点是:时间回调造成混乱。
Mysql自我成长的优势在于:
1,存储空间小。
2.高插入和查询性能。
缺点是:
1和int的范围可能不够大。
2.要做数据迁移的时候会很麻烦,主键容易冲突。
3.由于id增加,自身业务的增长很容易被别人掌握。
4.自增在高并发的情况下性能很差。
生成id的代码是:
自增和UUid不同的原因是我们通常在mysql数据库中使用Innodb支持事务,在Innodb中使用B+ number索引。Innodb的存储结构是一个聚集索引。聚集索引的顺序主键和随机主键对效率影响很大。
自增量是顺序主键存储,查找和插入方便(插入会按顺序在前一个之后插入),但是UUid是乱序的,计算得到的hashcode也会乱序(根据hashcode选择存储位置)。
所以对他的搜索效率是很低的,而且因为他是无序的,他的插入可能会插入到前面的数据中,这样会引起很多其他的操作,会极大的影响性能或者会因为无序存储而浪费很多存储空间。