Một VARCHAR
dài được lưu trữ theo cách tương tự như một TEXT
/ BLOB
trường trong InnoDB
.
Trừ khi bạn cần lập chỉ mục các cột này (trong trường hợp đó là VARCHAR
nhanh hơn nhiều) không có lý do gì để sử dụng VARCHAR
qua TEXT
cho các trường dài - có một số tối ưu hóa công cụ cụ thể trong MySQL
để điều chỉnh truy xuất dữ liệu theo độ dài và bạn nên sử dụng loại cột chính xác để tận dụng lợi thế của chúng.
Trong trường hợp bạn đang sử dụng MyISAM
thảo luận chuyên sâu về chủ đề này tại đây .
TEXT
và BLOB
được lưu trữ ngoài bảng với bảng chỉ có một con trỏ đến vị trí của bộ nhớ thực sự.
VARCHAR
được lưu trữ nội tuyến với bảng. VARCHAR
nhanh hơn khi kích thước hợp lý.
Theo kiểm tra này
, VARCHAR
nhanh gấp ba lần so với văn bản.