如果用uuid做ob表的主键,是否会有跟MySQL表用UUID作主键一样的缺点?

MySQL 的 Innodb引擎是因为使用了B+树,如果用UUID作为主键,很有可能频繁的导致页分裂影响插入性能。那么OB会有同样的问题吗?OB底层貌似是用的LSM

应该不会吧
虽然索引是用到B+树,但是已经是主键,应该不会再给建索引。所以应该是不会

LSM Tree的架构中,MEMtable是用Btree的方式组织表(主键)和索引的数据,主键有序。如果使用UUID作为主键,是无序的,在insert、update时,内存中的宏块、微块也会频繁的页分裂, 而有序的sequence作为主键属于顺序写,性能比UUID作为主键要好。 只不过OB的增删改都在内存,只有转储或合并才落盘,mysql的增删改会持续落盘,所以UUID作为主键对mysql影响更明显。

1 个赞

会存在。不知道为啥ob不参考mongodb objectid的生成方式