我正在集羣環境中開發Web應用程序。問題是我們需要爲每個創建的實體生成一個ID。我們處於一個具有多個數據庫節點的環境中,這些數據庫節點都是相互流式傳輸的。我的想法是一個帶有偏移量的序列。因此,一個站點的ID將以1結尾,接下來的2個,依此類推。這似乎是一個難以實施的解決方案,因爲您僅限於許多環境。當您處於受干擾的數據庫環境時,保證唯一生成的主鍵的「最佳」方式是什麼?集羣環境中的數據庫ID生成
1
A
回答
0
就我個人而言,我更喜歡偏移序列。是的,你被限制在一定數量的環境中,但實際上,你通常可以從一開始就設置一些東西,以便可用環境的數量遠遠超過你真正需要的環境。如果你這樣做
在網站1
CREATE SEQUENCE sequence_name
START WITH 1
INCREMENT BY 1000;
在現場2
CREATE SEQUENCE sequence_name
START WITH 2
INCREMENT BY 1000;
上下行,最多可以有999個站點,你必須返工你的序列之前。這通常綽綽有餘。如果您認爲實際上可能有1000個站點,則可以將增量設置爲10,000或100,000。給定序列可以生成的值的數量,即使將增量設置爲數百萬,也不會耗盡。實際上,在處理序列問題之前,您會遇到流處理太多站點的問題。
如果您不想走這條路,另一個選擇是使用SYS_GUID
生成一個全局唯一的ID並將其用於您的主鍵。這不像使用序列那麼高效,它需要更多的空間,但它確實允許您擁有任意數量的機器。
相關問題
- 1. 在集羣環境中共享數據
- 2. 的集羣環境
- 3. 集羣環境中的Log4j
- 4. 在集羣環境中
- 5. 查找羣集環境的SQL Server數據庫文件設置
- 6. 關於集羣環境的數據庫訪問相關信息
- 7. 在集羣環境中生成一個範圍內(0-100k)的隨機數
- 8. 從羣集環境中的數據庫表中讀取最快的方式
- 9. 如何使生產數據庫上的羣集PK非羣集?
- 10. 集羣環境中的ASP.Net核心數據保護API
- 11. 在WebLogic集羣環境中設置WebSphere MQ集成
- 12. 集羣環境中的同步
- 13. 在集羣環境中的subclipse
- 14. 集羣環境中的資產管理
- 15. 多集羣環境中的JCR鎖定
- 16. 羣集環境中的Toplink異常
- 17. 集羣環境中的Jboss AS 7 Infinispan
- 18. 羣集環境中的休眠ORM
- 19. 羣集環境中的關鍵部分
- 20. Selenium集成開發環境集成開發環境IDE集成開發環境集成開發環境
- 21. 虛擬化(和雲)環境中的羣集和數據庫複製
- 22. 數據庫中的羣集或數據庫中的羣集意味着什麼?
- 23. 如何在此環境中形成羣集並選擇羣集標頭?
- 24. 重交通生產環境中的節點JS羣集
- 25. 生產環境中的Tomcat集羣/負載平衡性能
- 26. Spring引導與不同數據庫環境的集成測試
- 27. 生產數據庫中的Flyway集成
- 28. 在集羣環境中緩存
- 29. 在Weblogic羣集環境中登錄-LINUX
- 30. 在集羣環境中配置log4j