InnoDB主键索引类型为聚簇索引。按照聚簇索引排列顺序,数据是按顺序紧密相连的。
对有序主键查询一定范围数据,数据库可以从更少的数据块中提取数据,节省了大量的IO操作,提高查询效率。
而Guid.NewGuid()生成的Guid是乱序的,不能利用聚簇索引的特性,会导致查询效率降低。
ABP 提供IGuidGenerator,默认生成顺序Guid值,解决了聚集索引的性能问题。建议用IGuidGenerator设置Id,而不是Guid.NewGuid(),如果你不设置Id,仓储库默认会使用IGuidGenerator。
IGuidGenerator实现的源码:
不同数据库对Guid的表现形式不同(”例如mysql是char(36),oracle是row(16)”),所以排序规则也不同。
需要对不同数据库类型的排序规则,制定对应生成顺序Guid的规则。
参考
标签:Create,聚簇,IGuidGenerator,Abp,索引,Guid,NewGuid From: https://www.cnblogs.com/flandresa/p/17061349.htmlhttps://www.cnblogs.com/CameronWu/p/guids-as-fast-primary-keys-under-multiple-database.html