php:生成MySQL数据库列中尚未存在的5位数字的最快方法(具有唯一属性)

Har*_*iec 2 php mysql random numbers

假设Table1包含列orderid(不是键,尽管它是NOT NULL且唯一).它包含5位数字.什么是生成不在该列中的php var $ unique_var的最佳方法.重要的是,表中有10%到30%的5位数字(所以生成一个数字并检查while (mysql_num_rows() ==0) {}不是找到一个数字的最佳方法,有没有更好的性能解决方案?).

谢谢.

zer*_*kms 7

如果只有 10-30%的数字已经被采用 - 那么这意味着只有 10-30%的查询将被执行至少两次.这根本不是一个大的性能问题.

否则 - 只需创建全5位数字列表(仅100k行)并删除所有存在的表.当你需要另一个随机数时 - 只需选择一个并删除.

  • @Haradzieniec:使用00001..99999数字创建表并删除已使用的所有值.当您需要另一个号码时 - 锁定表格,选择一个号码,删除它,解锁表格. (2认同)