2010-02-18 70 views

Trả lời

36

Bạn không thể chỉ định giá trị DEFAULT cho một số TINYTEXT và bạn không thể tạo chỉ mục chưa được sửa đổi sau này.

Nội bộ, các đối tượng bổ sung được cấp phát trong bộ nhớ để xử lý các cột TEXT (incl. TINYTEXT) có thể gây ra phân đoạn bộ nhớ trên các bản ghi lớn.

Lưu ý rằng điều này chỉ liên quan đến biểu diễn bên trong của cột trong bộ ghi, không phải cách chúng được lưu trữ trên đĩa.

+0

Còn về, khi mysql cần đến bảng tạm thời, nếu một blob hoặc văn bản (inc. tinytext) nó sử dụng đĩa thay vì bộ nhớ để tạo bảng tạm thời – andho

+8

Cái nào rẻ hơn (chu kỳ thời gian và CPU) để tìm kiếm? – Medorator

5

Sử dụng VARCHAR bạn có thể đặt cột thành NULL hoặc NOT NULL và bạn có thể đặt giá trị DEFAULT nhưng không được đặt với TEXT. Sử dụng VARCHAR nếu bạn cần một hoặc cả hai tính năng, NULLDEFAULT.

+3

cột TINYTEXT cũng có thể là NULL. – planetp

+0

Nhưng không phải là mặc định –

-2

trong varchar bạn phải thiết lập chiều dài của một nhân vật trong khi ở tanytext không có gì như thế này là nó tiết kiệm bộ nhớ của cơ sở dữ liệu cho ví dụ:

cho địa chỉ mà bạn phải xác định varchar (50) so với bạn địa chỉ có thể là 50 charecter hoặc ít hơn tình trạng tồi tệ hơn là nhân vật của bạn nhiều hơn 50 ký tự này là giới hạn của varchar nếu ký tự nhỏ hơn 50 so với nó chiếm 50 bộ nhớ ký tự trong bộ nhớ này tăng

để sử dụng tanytext nó xác định độ dài ký tự phụ thuộc vào kích thước của ký tự để bộ nhớ được lưu

+0

Điều này là sai. Một varchar chỉ sử dụng nhiều bộ nhớ như độ dài của những gì đang được lưu trữ (trái ngược với char). Xem http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html – viblo

+0

Hi viblo, trong varchar, chúng tôi xác định trước độ dài của chuỗi cần bộ nhớ tối đa giới hạn được xác định trước. đây không phải là trường hợp của tanytext. – nilesh

+0

Tôi không hiểu ý bạn là gì. Các tài liệu MySQL nói rằng một varchar yêu cầu "L + 1 byte nếu giá trị cột yêu cầu 0 - 255 byte, L + 2 byte nếu giá trị có thể yêu cầu nhiều hơn 255 byte" trong đó L là độ dài thực tế của văn bản được lưu trữ, không phải những gì bạn xác định varchar để có độ dài tối đa. – viblo

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