Sebelum MySQL versi 5.0.3, ia dapat menyimpan 255 aksara, tetapi bermula dari versi 5.0.3, ia boleh menyimpan 65,535 aksara.
Dokumentasi MySQL rasmi menyatakan:
Panjang maksimum berkesan VARCHAR dalam MySQL 5.0.3 dan lebih baru bergantung pada saiz baris maksimum (65,535 bait, yang dikongsi oleh semua lajur) dan set aksara yang digunakan. Sebagai contoh, aksara utf8 mungkin memerlukan sehingga tiga bait setiap aksara, jadi lajur VARCHAR menggunakan set aksara utf8 boleh diisytiharkan mempunyai maksimum 21,844 aksara.
Sila ingat bahawa had saiz baris maksimum ialah 65,535 bait. Ini bermakna termasuk semua lajur, jumlah saiz tidak boleh melebihi 65,535 bait.
Mari kita lihat apa yang berlaku jika had ini dilanggar:
Ini ialah jadual dengan dua lajur, "satu" ialah varchar panjang 32,765 dan "dua" ialah varchar panjang 32,766.
Panjang = 32765 + 2 + 32766 + 2 = 65535.
CREATE TABLE IF NOT EXISTS `mytable` ( `one` varchar(32765) NOT NULL, `two` varchar(32766) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Sekarang mari kita tambah panjang lajur -
CREATE TABLE IF NOT EXISTS `mytable` ( `one` varchar(32767) NOT NULL, `two` varchar(32770) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Di atas memberikan ralat berikut -
#1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
Di atas menunjukkan dirinya sendiri -
The maximum row size is 65,535 bytes. If it exceeds, an error will be visible.
Atas ialah kandungan terperinci Apakah saiz maksimum MySQL VARCHAR?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!