91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解決UUID無序的問題

發布時間:2021-11-15 16:13:12 來源:億速云 閱讀:297 作者:iii 欄目:大數據

這篇文章主要講解了“怎么解決UUID無序的問題”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么解決UUID無序的問題”吧!

為了解決UUID無序的問題,NHibernate在其主鍵生成方式中提供了Comb算法(combined guid/timestamp)。保留GUID的10個字節,用另6個字節表示GUID生成的時間(DateTime)。

/// <summary> 
/// Generate a new <see cref="Guid"/> using the comb algorithm. 
/// </summary> 
private Guid GenerateComb()
{
    byte[] guidArray = Guid.NewGuid().ToByteArray();
 
    DateTime baseDate = new DateTime(1900, 1, 1);
    DateTime now = DateTime.Now;
 
    // Get the days and milliseconds which will be used to build    
    //the byte string    
    TimeSpan days = new TimeSpan(now.Ticks - baseDate.Ticks);
    TimeSpan msecs = now.TimeOfDay;
 
    // Convert to a byte array        
    // Note that SQL Server is accurate to 1/300th of a    
    // millisecond so we divide by 3.333333    
    byte[] daysArray = BitConverter.GetBytes(days.Days);
    byte[] msecsArray = BitConverter.GetBytes((long)
      (msecs.TotalMilliseconds / 3.333333));
 
    // Reverse the bytes to match SQL Servers ordering    
    Array.Reverse(daysArray);
    Array.Reverse(msecsArray);
 
    // Copy the bytes into the guid    
    Array.Copy(daysArray, daysArray.Length - 2, guidArray,
      guidArray.Length - 6, 2);
    Array.Copy(msecsArray, msecsArray.Length - 4, guidArray,
      guidArray.Length - 4, 4);
 
    return new Guid(guidArray);
}

用上面的算法測試一下,得到如下的結果:作為比較,前面3個是使用COMB算法得出的結果,最后12個字符串是時間序(統一毫秒生成的3個UUID),過段時間如果再次生成,則12個字符串會比圖示的要大。后面3個是直接生成的GUID。

如果想把時間序放在前面,可以生成后改變12個字符串的位置,也可以修改算法類的最后兩個Array.Copy。

怎么解決UUID無序的問題

感謝各位的閱讀,以上就是“怎么解決UUID無序的問題”的內容了,經過本文的學習后,相信大家對怎么解決UUID無序的問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙口市| 射洪县| 钟山县| 达拉特旗| 出国| 汉源县| 东安县| 永顺县| 建湖县| 清流县| 富民县| 思茅市| 滦南县| 云阳县| 赤城县| 绥江县| 建昌县| 屏山县| 乌拉特后旗| 花垣县| 金塔县| 印江| 苏尼特右旗| 阆中市| 屏山县| 静安区| 陈巴尔虎旗| 丹棱县| 琼海市| 鄄城县| 抚远县| 西乌珠穆沁旗| 农安县| 奎屯市| 普定县| 仙居县| 台北县| 新乡市| 巩留县| 资溪县| 师宗县|