我打算在nhibernate orm层中使用c#和mssql数据库,并且试图确定在生产中使用哪种方法会更快。唯一标识符策略
据我所知,Guids需要4倍多的空间而不是16个对4个字节。
数据的同步将会频繁发生。这是一个棘手的问题,因为坏的方法会导致大量的内存消耗。使用整数可以引起更快的响应,但每次数据插入必须通过数据库才能从序列中获取值。
因此,我应该在内部mssql上使用带有标识的整数方法,还是在标识列的nhibernate映射中使用HiLo生成器?
我会不会遇到使用GUID的性能问题?
性能是非常小的。我宁愿使用可维护策略,而不是使用32位或128位标识符进行微型优化。既然你想同步数据,一个guid而不是递增的int会更好,因为如果你使用一个int,你基本上需要确保在插入之前增量的int在另一个数据库中不被“取用”。 – Patrick 2012-04-28 17:55:26
好的,应该使用guid。谢谢。如何接受你的答案? – Grunf 2012-04-28 18:06:19
我可以让它成为答案..给我一分钟.. – Patrick 2012-04-28 18:37:39