Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara memastikan tidak ada celah dalam angka auto_increment?

Pertama, itu benar-benar baik untuk memiliki kesenjangan ini. tidak ada masalah . Hanya OCD Anda yang memaksa Anda untuk berpikir bahwa angka-angka ini harus mengikuti suatu pola - TIDAK.

  • auto_increment bukan fitur PHP, ini fitur MySQL
  • auto_increment memastikan setiap baris mendapatkan unik nomor. Itu tidak berhubungan dengan nomor urut
  • auto_increment bekerja dengan aman di lingkungan bersamaan - itu berarti ada banyak pengguna yang terhubung ke MySQL dan melakukan banyak hal, dan semuanya harus dapat menangani database dan tidak mendapatkan id yang sama untuk mengidentifikasi baris. Ini dilakukan melalui proses yang agak rumit dan inilah salah satu alasan mengapa auto_increment menghasilkan kesenjangan
  • auto_increment digunakan oleh InnoDB untuk organisasi fisik catatan pada disk - ini menggunakan fitur auto_increment dan yang satu menghasilkan angka yang lebih besar dari sebelumnya (itulah yang dilakukannya, lebih besar dari sebelumnya, tidak berurutan). Menggunakan ini, b-tree dibangun dan catatan ditulis secara berurutan pada hard drive. Merusak auto_increment membuat InnoDB menyeimbangkan kembali pohon. Itu berarti ia melewati catatan dan membuat ulang indeks jika Anda mengacaukannya - itu adalah sesuatu yang tidak Anda inginkan. Pernah

Ketika Anda memikirkannya, apa yang Anda dapatkan dengan nomor urut? Tidak ada yang benar-benar, kecuali otak Anda mungkin kurang sakit karena ada beberapa urutan imajiner.

Untuk nomor urut, gunakan pemicu untuk membuatnya. auto_increment memiliki satu pekerjaan dan hanya satu pekerjaan - untuk menghasilkan unik angka.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat banyak halaman dari kueri mysql

  2. Mysql:Bagaimana cara memanggil file skrip sql dari file skrip sql lain?

  3. Filter input null atau kosong menggunakan LOAD DATA INFILE di MySQL

  4. jika Baris1 =Nilai 1, Perbarui baris lainnya

  5. Bagaimana cara menyimpan banyak item dalam kolom database?