Soalan:
Mengapa autoincrement nilai dalam MySQL meningkat walaupun sisipan gagal apabila medan unik wujud?
Penjelasan:
InnoDB, enjin lalai dalam MySQL, beroperasi secara transaksi. Oleh itu, apabila berbilang sesi mencuba sisipan serentak ke dalam jadual dengan lajur autoincrement, senario tertentu mungkin timbul:
Akibat:
Apabila sisipan gagal disebabkan pelanggaran kekangan medan yang unik, nilai autoincrement masih dinaikkan kerana InnoDB mengekalkan kaunter autoincrement dalam memori sepanjang operasi pelayan. Apabila pelayan dimulakan semula, InnoDB menetapkan semula kaunter untuk setiap jadual semasa sisipan pertama ke dalam jadual itu.
Mitigasi:
Jika potensi pembalut lajur ID menjadi kebimbangan , pertimbangkan untuk menggunakan jenis data BIGINT (8-bait panjang) untuk menyediakan julat nilai yang lebih besar.
Atas ialah kandungan terperinci Mengapa Peningkatan Autoincrement MySQL Walaupun pada Sisipan Gagal dengan Kekangan Unik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!