2009-08-20 21 views

Trả lời

18

Thông thường, không. text cột thực sự được lưu trữ cách xa hàng, vì vậy chúng không chiếm không gian trên hàng, mỗi lần. Thay vào đó, hàng giữ một con trỏ đến cột text (trong đó không chiếm không gian, nhưng chỉ 4 byte-ish (phụ thuộc vào hệ thống) một hàng), nhưng chính cột text sẽ vẫn trống cho đến khi bạn điền nó.

Bây giờ, varchar cột sẽ phân bổ không gian để chèn tối đa, nhưng chỉ chiếm dung lượng cần thiết cho nội dung của nó. Tuy nhiên, các cột char sẽ luôn sử dụng khoảng trống được chỉ định. Vì vậy, dưới đây là ý nghĩa của từng cột trong cụm từ "bánh quế":

varchar(15): 'waffles' 
char(15): 'waffles  ' 
text:  'waffles' 

Hy vọng điều này sẽ hữu ích.

+1

điều này có đúng với tất cả các loại văn bản, ví dụ như MediumText, LongText, v.v. không? Tôi đang sử dụng động cơ inno-db cho bây giờ. Cũng muốn xác nhận nếu nó thực hiện bất kỳ loại nén, tôi có nghĩa là nếu tôi chỉ đặt 10 Byte trong lĩnh vực văn bản, nó sẽ làm một số nén hoặc có được toàn bộ 64 KB? – user2098324

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