2012-07-24 82 views
81

blob là gì và text là gì? Sự khác biệt là gì?Sự khác nhau giữa các kiểu dữ liệu BLOB và TEXT trong MySQL là gì?

Khi nào tôi cần sử dụng blob và khi nào tôi cần text làm loại dữ liệu?

Bởi vì cho blobtext, có mediumblob == mediumtext, smallblob == small text. Họ thậm chí có cùng ý nghĩa?

Và xem này MEDIUMBLOB, MEDIUMTEXT L + 3 byte, trong đó L < 224.

L là gì?

+0

Tôi nghĩ bài này trả lời câu hỏi của bạn http://stackoverflow.com/questions/7071662/mysql-text-vs-blob-vs-clob – earlonrails

Trả lời

70

TEXT và CHAR sẽ chuyển đổi thành/từ bộ ký tự mà chúng đã liên kết với thời gian. BLOB và BINARY chỉ lưu trữ các byte.

BLOB được sử dụng để lưu trữ dữ liệu nhị phân trong khi Văn bản được sử dụng để lưu trữ chuỗi lớn.

Giá trị BLOB được coi là chuỗi nhị phân (chuỗi byte). Chúng không có bộ ký tự và việc sắp xếp và so sánh dựa trên các giá trị số của các byte trong các giá trị cột.

Giá trị văn bản được coi là chuỗi không phải là chuỗi ký tự (chuỗi ký tự). Họ có một bộ ký tự, và các giá trị được sắp xếp và so sánh dựa trên sự đối chiếu của bộ ký tự.

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

+3

như vậy, chúng tôi sử dụng văn bản để lưu trữ văn bản dài như "bài wordpress "? và chúng tôi sử dụng blob để lưu trữ địa chỉ URL rất dài? vậy tại sao chúng ta không sử dụng varchar để lưu trữ một văn bản rất dài thay vì sử dụng blob hoặc văn bản? bởi vì trong tính toán bộ nhớ, varchar thực sự đơn giản, ví dụ: tạo trang web bảng (website_name varchar (30)) và sau đó chúng tôi điền vào bộ lưu trữ "stackoverflow" của website_name để bộ nhớ cần thiết là 13byte – nencor

+4

TEXT sẽ được thay thế bằng Varchar (MAX) nhưng bây giờ tùy thuộc vào phiên bản của bạn của mysql sử dụng TEXT cho bài viết văn bản lớn như bài đăng trên blog cơ thể vv BLOB không nên được sử dụng để lưu trữ địa chỉ URL rất dài hoặc số lượng lớn văn bản. Nó thường được sử dụng để lưu trữ hình ảnh hoặc các đối tượng dựa trên nhị phân khác. Cá nhân tôi không bao giờ sử dụng BLOB hoặc TEXT và lưu trữ một lượng lớn dữ liệu trong các tệp xml liên quan đến các thư mục dựa trên id người dùng. – Darcey

+0

tôi không hiểu đối tượng dựa trên nhị phân. bạn có nghĩa là, chúng tôi có thể lưu trữ hình ảnh vào cơ sở dữ liệu bằng cách sử dụng kiểu dữ liệu Blob ?? giống như thư mục? tất cả những gì tôi biết về nhị phân chỉ là 1 hoặc 0. – nencor

5

Một BLOB là một chuỗi nhị phân để giữ một số lượng biến của dữ liệu. Đối với hầu hết các phần BLOB được sử dụng để giữ hình ảnh nhị phân thực tế thay vì đường dẫn và thông tin tệp. Văn bản là số lượng lớn các ký tự chuỗi. Thông thường một blog hoặc bài viết tin tức sẽ cấu thành một trường TEXT

L trong trường hợp này được sử dụng nêu rõ yêu cầu lưu trữ. (Chiều dài | Kích + 3) miễn là nó ít hơn 224.

tham khảo: http://dev.mysql.com/doc/refman/5.0/en/blob.html

8

TEXT và CHAR hoặc nchar mà thường sẽ được chuyển đổi sang văn bản đơn giản, do đó bạn chỉ có thể lưu trữ văn bản như chuỗi.

BLOB và BINARY có nghĩa là bạn có thể lưu trữ dữ liệu nhị phân như hình ảnh chỉ lưu trữ byte.

+0

ý của bạn là gì khi lưu trữ dữ liệu nhị phân như hình ảnh? ý của bạn là url hình ảnh? – nencor

+1

không có url umage là văn bản nhưng hình ảnh dưới dạng tệp là nhị phân –

7

kiểu dữ liệu Blob cửa hàng đối tượng nhị phân như hình ảnh trong khi đối tượng kiểu dữ liệu văn bản lưu trữ văn bản như bài viết của trang web

0

Blob là đối tượng nhị phân lớn mà có chứa một số lượng biến của dữ liệu. Giá trị được coi là chuỗi nhị phân.Bạn không cần chỉ định độ dài khi tạo cột.

in Văn bản Giá trị được coi là chuỗi ký tự có bộ ký tự.

Mỗi giá trị BLOB hoặc TEXT được thể hiện nội bộ bởi một đối tượng được phân bổ riêng. n một số trường hợp, có thể mong muốn lưu trữ dữ liệu nhị phân như tệp phương tiện trong cột BLOB hoặc TEXT.

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