2011-07-01 29 views
7

Tôi biết rằng kể từ MySQL 5, VARCHAR có thể có độ dài tối đa 65.000. VARCHAR được lưu trữ nội tuyến, có nghĩa là truy xuất nhanh hơn, trái với TEXT, được lưu trữ bên ngoài bảng. Điều đó nói rằng, tài liệu nói rằng MySQL sẽ xử lý LONG VARCHAR chính xác TEXT.Tại thời điểm nào MySQL bắt đầu xử lý các loại VARCHAR cols như TEXT cols?

Theo this Source:

Từ lưu trữ BLOB tiềm năng, TEXT như cũng như VARCHAR dài được xử lý cùng cách bởi InnoDB. Đây là lý do tại sao Innodb hướng dẫn sử dụng gọi nó là “cột dài” thay vì so với BLOB.

Khi nào MySQL bắt đầu xử lý VARCHAR như TEXT? Tại MySQL nhân vật nào làm cho sự khác biệt này, và VARCHAR ngừng nhận được lưu trữ nội tuyến?

+1

Tại một đoán, tôi sẽ tưởng tượng nó sẽ là khi 'VARCHAR' di chuyển sang định dạng dài, đó sẽ là sau khi nó vượt xa giới hạn lớn hơn, đó là 255 ký tự Tôi tin rằng - kiểm tra giới hạn cũ. – Orbling

Trả lời

5

Câu trả lời ngắn: VARCHAR "dài" là VARCHAR bình thường và sẽ nội tuyến.

MySQL sẽ không bắt đầu xử lý VARCHAR thẳng như một loại văn bản. Nó sẽ luôn được lưu trữ nội tuyến. Với 5.0.3, giới hạn trên cho VARCHARs được thoải mái đến 65.535 byte. Họ cũng chiếm 2 byte tiêu đề nếu hơn 255 ký tự. Giới hạn này vẫn được áp dụng cho kích thước hàng tối đa là 65.535 byte. Một VARCHAR LONG thực sự là một loại khác nhau mà backcompats để MEDIUMTEXT.

Xem: http://dev.mysql.com/doc/refman/5.0/en/char.htmlhttp://dev.mysql.com/doc/refman/5.0/en/blob.html

Các vấn đề liên quan