Anda sebaiknya menyimpan tabel dengan 10.000 kemungkinan nilai yang ditentukan, dan masing-masing tanda "sedang digunakan". Dengan begitu, melepaskan nomor untuk digunakan kembali adalah pembaruan sederhana untuk menyetel "inuse=false".
Juga membuat menemukan nilai terendah yang tersedia menjadi sederhana
SELECT idstring
FROM idstringtable
ORDER BY idstring ASC
WHERE (available = 1)
LIMIT 1
Melakukannya dengan penguncian/transaksi yang sesuai akan mencegah dua atau lebih permintaan mendapatkan ID yang sama, dan karena ini adalah tabel kecil, melakukan penguncian tabel global tidak akan memengaruhi kinerja secara signifikan.
Jika tidak, Anda akan terjebak mengaduk-aduk tabel pengguna Anda, mencoba menemukan "celah" pertama dalam urutan penomoran.