Rumah >pangkalan data >tutorial mysql >Bagaimanakah MySQL Mentafsir Panjang VARCHAR dalam Jadual UTF-8?

Bagaimanakah MySQL Mentafsir Panjang VARCHAR dalam Jadual UTF-8?

DDD
DDDasal
2024-11-21 07:25:11375semak imbas

How Does MySQL Interpret VARCHAR Lengths in UTF-8 Tables?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn