Rumah > Artikel > pangkalan data > Bagaimanakah MySQL Mentafsir Panjang VARCHAR dalam Jadual UTF-8?
Menyahkod VARCHAR Lengths dan UTF-8 dalam MySQL
Semasa mencipta medan VARCHAR dalam MySQL, salah tanggapan biasa timbul mengenai kapasiti penyimpanan data . Pengguna mungkin menganggap bahawa medan VARCHAR(32) dalam jadual UTF-8 boleh memuatkan 32 bait atau 32 aksara, yang mana lebih besar. Walau bagaimanapun, tafsiran sebenar bergantung pada versi MySQL yang digunakan.
Versi 4 berbanding Versi 5
Dalam versi MySQL sebelum 4.1, panjang VARCHAR diukur dalam bait. Oleh itu, medan VARCHAR(32) boleh menyimpan sehingga 32 bait data. Walau bagaimanapun, dalam MySQL versi 5 dan lebih baru, panjang VARCHAR ditafsirkan dalam unit aksara. Oleh itu, medan VARCHAR(32) dalam jadual UTF-8 boleh memuatkan sehingga 32 aksara.
Dokumentasi MySQL Rasmi
Untuk menjelaskan isu ini, MySQL rasmi 5 dokumentasi secara eksplisit menyatakan:
"MySQL mentafsir spesifikasi panjang dalam definisi lajur aksara dalam aksara unit. (Sebelum MySQL 4.1, panjang lajur ditafsirkan dalam bait.) Ini digunakan untuk CHAR, VARCHAR dan jenis TEXT."
Impak UTF-8
Selain itu, set aksara yang digunakan boleh mempengaruhi panjang maksimum lajur VARCHAR. Sebagai contoh, aksara UTF-8 boleh memerlukan sehingga tiga bait setiap aksara. Oleh itu, lajur VARCHAR menggunakan UTF-8 boleh diisytiharkan sebagai maksimum 21,844 aksara. Ini dikekang oleh saiz baris maksimum 65,535 bait.
Atas ialah kandungan terperinci Bagaimanakah MySQL Mentafsir Panjang VARCHAR dalam Jadual UTF-8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!