sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo garantizar que no haya espacios en los números de auto_incremento?

En primer lugar, está completamente bien tener estos huecos. No no hay problema . Es solo tu TOC lo que te obliga a pensar que estos números tienen que seguir un patrón, y NO LO SIGUEN.

  • auto_increment no es una función de PHP, es una función de MySQL
  • auto_increment asegura que cada fila obtenga un único número. No trata con números secuenciales
  • auto_increment funciona de forma segura en un entorno concurrente; eso significa que hay muchos usuarios que se conectan a MySQL y hacen cosas, y todos ellos deben poder manejar la base de datos y no obtener la misma identificación para identificar una fila. Esto se hace a través de un proceso bastante complejo y esta es una de las razones por las que auto_increment brechas de rendimiento
  • auto_increment es utilizado por InnoDB para la organización física de registros en disco:utiliza la característica de auto_increment y ese está produciendo un número que es más grande que el anterior (eso es lo que hace, más grande que el anterior, no secuencial). Usando esto, se construye un árbol b y los registros se escriben en secuencia en el disco duro. Manipulación de auto_increment hace InnoDB reequilibrar el árbol. Significa que pasa por los registros y recrea el índice si te metes con él, eso es algo que no quieres. nunca

Cuando lo piensas, ¿qué obtienes con los números secuenciales? Nada en realidad, excepto que probablemente tu cerebro duela menos porque hay un orden imaginario.

Para números secuenciales, use disparadores para crearlos. auto_increment tiene un trabajo y solo un trabajo:producir único números.