簡體   English   中英

生成uuid的最佳實踐? php或MySql

[英]Best Practice to generate uuid ? php OR MySql

什么是生成UUID(PRIMARY KEY)的最佳實踐,讓它在Mysql結束時生成或讓它在PHP結束時生成

做一些性能測試我發現在php端生成它有點快

但做了一些Google我發現很多人正在練習它在MySQL端生成http://instagram-engineering.tumblr.com/post/10853187575/sharding-ids-at-instagram

那么對於不斷增長的數據,這樣做的正確方法是什么?

如果您希望從不同的應用程序插入行,那么通過DB生成UID是最安全的方法,因為實現是集中的,當然不會在應用程序之間更改。

假設您決定使用其他語言創建API。 然后,您需要使用該語言實現相同的生成器。 這種其他語言實現您依賴的函數生成密鑰數據的方式可能會有所不同,從而導致重復密鑰。

如果您只是在自己的服務器上從PHP插入行,那么在應用程序或數據庫中生成UID並不重要。

安全並不總是正確的 或者實用。 權衡您的預期用例的利弊,然后從那里開始。

你可以嘗試一個非常好的PHP類純PHP UUID生成器

  • 克隆存儲庫(或者將UUID.php類復制到您的php文件中..)
  • 直接使用帶靜態方法的類

例:

UUID::v5('1546058f-5a25-4334-85ae-e68f2a44bbaf', 'SomeRandomString');

如果復制數據庫,則使用本機數據庫UUID函數可能會導致問題。 同時,我將確認使用任何預先編寫的UUID生成器來確認UUID的最低有效字節變化比最高有效字節更快(以適應數據庫索引集群)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM