php: la forma más rápida de generar un número de 5 dígitos que aún no se encuentra en la columna db de MySQL (con un atributo único)

Supongamos que Table1 contiene la columna orderid (no es una clave, aunque no es NULL y es única). Contiene números de 5 dígitos. ¿Cuál es la mejor manera de generar un php var $ unique_var que no está en esa columna? Lo que podría ser importante, del 10% al 30% de los números de 5 dígitos están en la tabla (por lo tanto, generar un número y verificar while (mysql_num_rows() ==0) {} no es la mejor manera de encontrar uno, ¿hay alguna? ¿Mejor solución para el rendimiento?).

Gracias.

Si solo hay un 10-30% de los números tomados, entonces significa que solo un 10-30% de las consultas se realizarán al menos dos veces. Lo que no es un gran problema de rendimiento en absoluto.

De lo contrario, solo cree la tabla de todos los números de 5 dígitos (solo 100k filas) y elimine todo lo que existe. Cuando necesite otro número aleatorio, simplemente elija uno y elimínelo.

Yo sugeriría encontrar el número más grande (con una cláusula MAX) y comenzar desde allí.

Aquí hay un par de sugerencias. Cada uno tiene sus inconvenientes.

  1. Rellene previamente la tabla y agregue una columna para indicar que un número no está en uso. Seleccione un número no utilizado utilizando LIMIT = 1 y márquelo como usado. Esto usa mucho espacio.
  2. Mantenga una tabla separada que contenga los números utilizados anteriormente. Si esa tabla está vacía, genere números secuencialmente desde el último número usado (o desde 00001 si la Tabla1 está vacía). Esto requiere un poco de contabilidad extra.