Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Kích thước tối đa của VARCHAR trong MySQL

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.