我打算在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