Computer >> Máy Tính >  >> Lập trình >> MySQL

Kích thước tối đa VARCHAR của MySQL là gì?


Phiên bản MySQL trước 5.0.3 có khả năng lưu 255 ký tự nhưng từ phiên bản 5.0.3, nó có khả năng lưu 65.535 ký tự.

Các trạng thái tài liệu chính thức của MySQL -

Độ dài tối đa hiệu dụng của một VARCHAR trong MySQL 5.0.3 trở lên tùy thuộc vào kích thước hàng tối đa (65,535 byte, được chia sẻ giữa tất cả các cột) và bộ ký tự được sử dụng. Ví dụ:các ký tự utf8 có thể yêu cầu tối đa ba byte cho mỗi ký tự, vì vậy cột VARCHAR sử dụng bộ ký tự utf8 có thể được khai báo là tối đa 21.844 ký tự.

Hãy nhớ rằng giới hạn của kích thước hàng tối đa là 65,535 byte, điều này nói rằng bao gồm tất cả các cột, nó không được nhiều hơn 65,535 byte.

Hãy để chúng tôi xem điều gì sẽ xảy ra nếu điều này bị vi phạm -

Đây là một bảng có hai cột, "một" varchar với chiều dài 32,765 và "hai" với 32766.

Chiều dài =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;

Bây giờ, hãy để chúng tôi tăng độ dài cột -

CREATE TABLE IF NOT EXISTS `mytable` (
`one` varchar(32767) NOT NULL,
`two` varchar(32770) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Ở trên đưa ra lỗi sau -

#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

Bản thân điều trên nói rằng -

The maximum row size is 65,535 bytes. If it exceeds, an error will be visible.