Otros han respondido que el rango de nombres de usuario es realmente grande, y si se agota, el sitio solo puede expandir el rango.
Compartiré una historia que explica un poco cómo se hace esto.
Fui llamado para ayudar con un sitio web que se había quedado sin valores de ID numéricos para sus cuentas de usuario. El síntoma de esto es que nadie puede crear un nuevo usuario. El programa genera una excepción y se queja de un valor de ID duplicado (los valores enteros de desbordamiento en MySQL simplemente se reemplazan con el valor máximo). Su sitio web aún funcionaba, pero ningún usuario nuevo podía crear cuentas.
- ¿Qué es el ping en una prueba de velocidad de internet?
- ¿Cómo crees que se podría desarrollar Internet en el futuro?
- ¿Cómo podría relacionar AI y IOT?
- Cuando se crea un lenguaje de programación, ¿cómo se implementa a través de Internet?
- ¿Podría YouTube haberse creado a principios de la década de 1990? Si no, ¿por qué?
Exploré su base de datos y descubrí que, de hecho, sus ID se habían expandido al valor de 2 ^ 31-1, que es el número entero máximo de 32 bits con signo. Dado que los ID de MySQL aumentan y no reutilizan valores ni rellenan huecos, tuvimos que expandir el rango de valores. Hacemos esto usando ALTER TABLE y cambiando el tipo de datos INT de 32 bits para la ID con un BIGINT de 64 bits.
La tabla de cuentas de usuario, previsiblemente, fue referenciada por muchas otras tablas en la base de datos. Así que fue una buena idea actualizar esas tablas primero. De lo contrario, tan pronto como ampliamos el rango de ID de usuario, encontraremos rápidamente otro error en alguna otra tabla que haga referencia al nuevo usuario. O peor, no arrojaría un error, sino que simplemente haría referencia silenciosa al usuario con la ID máxima anterior. Había alrededor de 30 de esas tablas que debían actualizarse. Entonces podríamos actualizar la ID de la tabla de usuarios principales.
Quizás se pregunte cómo podrían haber agregado 2 ^ 31-1 cuentas de usuario. Eso es más de 2 mil millones, y ciertamente no tenían tantas cuentas.
El hecho era que no todos los valores en el rango estaban siendo utilizados. Hubo grandes diferencias entre los valores de ID, causados cuando la creación de la cuenta de usuario falló por alguna razón, pero el valor de ID se incrementó de todos modos. Señala que solo porque tiene un amplio rango de valores posibles , no significa que se usen todos los valores consecutivos.
Esta historia trata sobre valores de ID numéricos, pero los mismos principios se aplican a las cadenas de texto, como los nombres de usuario.