2010-09-10 43 views
6

Tôi cần lưu trữ truy vấn SQL (lớn) trong một cột của bảng và tôi nghĩ sử dụng trường BLOB. Để được rõ ràng, tôi muốn lưu trữ các truy vấn, không phải kết quả của nó.Oracle BLOB vs VARCHAR

Cách tốt nhất để sử dụng: BLOB hoặc VARCHAR? Hoặc cái gì khác có thể?

Trả lời

9

Nếu bạn định lưu trữ dữ liệu văn bản không thể vừa với VarChar2 thì tôi cho rằng bạn đang sử dụng số CLOB.

Trích dẫn từ OraFaq: * Một CLOB (Đối tượng lớn ký tự) là một kiểu dữ liệu Oracle có thể chứa tối đa 4 GB dữ liệu. CLOB là tiện dụng để lưu trữ văn bản. *

+0

vâng, tôi nghĩ rằng văn bản của tôi sẽ không phù hợp trong một VARCHAR. Cảm ơn lời giải thích. –

2

Chúng đều khác nhau.

Bạn sử dụng BLOB để lưu trữ dữ liệu nhị phân như hình ảnh, âm thanh và dữ liệu đa phương tiện khác.

VARCHAR để lưu trữ văn bản có kích thước bất kỳ tới giới hạn.

8

Tùy chọn khác là CLOB. Đối với dữ liệu văn bản, nó hợp lý hơn để sử dụng CLOB so với BLOB. Ngay cả khi bạn không phải phân tích dữ liệu bên trong cơ sở dữ liệu, nó vẫn có thể có ý nghĩa để sử dụng CLOB, bởi vì thậm chí xem dữ liệu cũng dễ dàng hơn.

Một số tính năng chỉ khả dụng khi sử dụng VARCHAR. Ví dụ, bạn chỉ có thể tạo một chỉ mục trên các cột VARCHAR (tôi không nói về chỉ mục fulltext ở đây, tôi biết bạn có thể tạo một chỉ mục toàn văn bản trên cột CLOB). Bạn không thể có khóa chính CLOB hoặc BLOB (tôi đoán bạn không cần điều đó; chẳng hạn như một ví dụ).

Hầu hết các hoạt động VARCHAR nhanh hơn nhiều so với hoạt động CLOB/BLOB. Ngay cả dữ liệu đọc cũng nhanh hơn nếu bạn sử dụng VARCHAR (trừ khi có rất nhiều văn bản trong cột). VARCHAR cần ít bộ nhớ hơn, nhưng chúng thường sẽ được đọc đầy đủ trong bộ nhớ, do đó, ở cuối VARCHAR vẫn có thể sử dụng nhiều bộ nhớ hơn.

+0

Đây là câu trả lời hay nhất, bởi vì nó giải thích sự khác biệt về tính năng và hiệu suất giữa các cột vôn và cột. – Anomaly

8

chuỗi ngắn → VARCHAR

chuỗi dài → CLOB

Dữ liệu nhị phân → BLOB

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