Từ MySQL 5.0.3, VARCHAR tối đa 65,535 byte (chia sẻ cho tất cả cột trong một hàng). Trước phiên bản này chỉ 255 ký tự.
Chi tiết theo charset
latin1(1 byte/ký tự): tối đa 65,535 ký tự.utf8(tối đa 3 byte/ký tự): tối đa ~21,844 ký tự.utf8mb4(tối đa 4 byte/ký tự): tối đa ~16,383 ký tự.
Ví dụ vi phạm giới hạn hàng
-- OK: 32765+2 + 32766+2 = 65535 bytes (varchar length + 1-2 byte length prefix) CREATE TABLE mytable ( one VARCHAR(32765) NOT NULL, two VARCHAR(32766) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- LỖI: vượt 65535 bytes CREATE TABLE mytable ( one VARCHAR(32767) NOT NULL, two VARCHAR(32770) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- #1118 - Row size too large... change some columns to TEXT or BLOBs
Lưu ý: Giới hạn 65,535 byte áp dụng cho tổng kích thước một hàng (trừ BLOB/TEXT lưu riêng). Nếu cần cột lớn, hãy dùng TEXT hoặc BLOB.