[英]Can PHP's random_int be relied for unique integer genrator (reasonably)
我有一個應用程序,每年需要生成大約 20 萬個批次 ID。
我首先想到使用uniqid()
來生成批處理 ID,但是這將返回字符串,與整數相比,它將在數據庫中占用大量空間。
因此,我的問題是,是否會random_int(1, 2147483647)
來生成唯一數字?
僅供參考,通常2147483647
是PHP_INT_MAX
。
正如@Alex Howansky 所提到的,如果使用uniquid()
,數據庫大小幾乎沒有增加。
如果您的要求接近 100% 的唯一 ID,那么random
4 位整數將不會是唯一的。 它需要一些額外的位才能隨機且唯一。
我在我的應用程序中使用以下功能。 這具有更高的唯一性概率。 它使用 22 個字節而不是uniquid()
的 13 個字節
function getUniqueId(){
// will return 22 characters Unique string eg "5bcc2342652c2630171474"
return str_replace('.', '', uniqid('',true));
}
如果您仍然需要僅使用整數。 然后,按照 Lawrence Cherone 的建議,您應該使用自動增量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.