开发数据库驱动的应用时,常为表的主键选择而烦恼,常用的几种主键生成方式都各有优缺点,但在数据可移植性、读性能、写性能之间做个权衡之后觉得还是自制+1的方式比较好。自制加1的方式的缺点是插入一条数据,需要先从数据库里获取一个新的主键ID,增加了网络往返的流量,而我改进之后是一下取一定数量的可用主键ID缓存起来,供应用来取,这样就不必每次插入新数据都先去数据库里取新ID了。而且int型的主键,无论做聚簇索引还是非聚簇索引,肯定比字符串、guid,COMB类型主键要快,毕竟它最窄,这就保证了读性能比较好。而写的时候大多时候从内存里读取新主键ID,也不会比identity列耗费多少性能。关于主键生成方式的讨论请看最后的相关链接。 开发数据库驱动的应用时,常为表的主键选择而烦恼,常用的几种主键生成方式都各有优缺点,但在数