MySQL VARCHAR Panjang: Menavigasi Kekeliruan Bait vs. Aksara
Dalam MySQL, tafsiran panjang lajur VARCHAR(n) berbeza-beza bergantung pada versi pangkalan data. Dalam versi sebelum 4.1, panjang lajur ditakrifkan dalam bait. Walau bagaimanapun, dalam MySQL 5 dan lebih baru, panjang ditafsirkan dalam unit aksara.
Byte Counts: MySQL Versi 4
Dalam MySQL Versi 4, lajur VARCHAR(32) boleh memuatkan 32 bait data. Oleh itu, menyimpan aksara berbilang bait dalam medan ini bergantung pada pengekodan aksara tertentu, yang berkemungkinan memerlukan lebih banyak bait setiap aksara.
Kiraan Aksara: MySQL Versi 5 dan Kemudian
Siarkan MySQL Versi 4, panjang lajur ditentukan oleh kiraan aksara. Lajur VARCHAR(32) dalam UTF-8 membenarkan 32 aksara. Aksara UTF-8 berbilang bait masih akan menduduki berbilang bait dalam kes ini, tetapi pengiraan panjang lajur mempertimbangkan bilangan aksara, bukan bait.
Pengesahan Dokumentasi MySQL
Untuk menjelaskan lebih lanjut, dokumentasi rasmi MySQL 5 menyatakan: "MySQL mentafsir spesifikasi panjang dalam definisi lajur aksara dalam unit aksara ... Ini digunakan untuk CHAR, VARCHAR dan jenis TEKS."
Kesan UTF-8 pada Panjang Maksimum VARCHAR
Menariknya, panjang maksimum lajur VARCHAR juga dipengaruhi oleh set aksara. Sebagai contoh, dalam MySQL 5.0.3 dan lebih baru, aksara utf8 boleh memerlukan sehingga tiga bait setiap aksara. Oleh itu, lajur VARCHAR menggunakan UTF-8 boleh mempunyai panjang maksimum yang diisytiharkan sebanyak 21,844 aksara (65,535 bait / 3 bait setiap aksara).
Atas ialah kandungan terperinci Bagaimanakah Panjang VARCHAR Berubah Antara MySQL 4 dan 5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!