Rumah >pangkalan data >tutorial mysql >Bagaimanakah Panjang VARCHAR Berubah Antara MySQL 4 dan 5?

Bagaimanakah Panjang VARCHAR Berubah Antara MySQL 4 dan 5?

Patricia Arquette
Patricia Arquetteasal
2024-11-22 08:57:10534semak imbas

How Do VARCHAR Lengths Change Between MySQL 4 and 5 ?

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!

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