Oracle BLOB против VARCHAR

Мне нужно сохранить (большой) SQL-запрос в столбце таблицы, и я подумал об использовании поля BLOB. Чтобы было ясно, я хочу сохранить запрос, а не его результат.

Что лучше использовать: BLOB или VARCHAR? Или что-то еще, может быть?


person CC.    schedule 10.09.2010    source источник


Ответы (4)


Если вы собираетесь хранить текстовые данные, которые не помещаются в VarChar2, я думаю, вам следует использовать CLOB.

Цитата из OraFaq: * CLOB (Character Large Object) — это тип данных Oracle, который может содержать до 4 ГБ данных. CLOB удобны для хранения текста. *

person Hans Olsson    schedule 10.09.2010
comment
да, я думаю, что мой текст не поместится в VARCHAR. Спасибо за объяснение. - person CC.; 10.09.2010

Другой вариант — CLOB. Для текстовых данных логичнее использовать CLOB, чем BLOB. Даже если вам не нужно анализировать данные в базе данных, все же может иметь смысл использовать CLOB, потому что даже просматривать данные проще.

Некоторые функции доступны только при использовании VARCHAR. Например, вы можете создать индекс только для столбцов VARCHAR (я не говорю здесь о полнотекстовом индексе, я знаю, что вы можете создать полнотекстовый индекс для столбца CLOB). У вас не может быть первичного ключа CLOB или BLOB (думаю, вам это не нужно; просто в качестве примера).

Большинство операций VARCHAR намного быстрее, чем операции CLOB/BLOB. Даже чтение данных происходит быстрее, если вы используете VARCHAR (если только в столбце действительно много текста). VARCHAR требует меньших затрат памяти, но обычно они полностью считываются из памяти, поэтому в конце VARCHAR может по-прежнему использовать больше памяти.

person Thomas Mueller    schedule 10.09.2010
comment
Это лучший ответ, потому что он объясняет различия в функциях и производительности между столбцами varchar и clob. - person Anomaly; 20.11.2017

Короткие строки → VARCHAR

Длинные строки → CLOB

Двоичные данные → BLOB

person PaulJWilliams    schedule 10.09.2010

Они оба разные.

Вы используете BLOB для хранения двоичных данных, таких как изображения, аудио и другие мультимедийные данные.

и VARCHAR для хранения текста любого размера до предела.

person codaddict    schedule 10.09.2010