Оракул BLOB против VARCHAR - PullRequest
       43

Оракул BLOB против VARCHAR

7 голосов
/ 10 сентября 2010

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

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

Ответы [ 4 ]

11 голосов
/ 10 сентября 2010

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

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

9 голосов
/ 10 сентября 2010

Короткие струны → VARCHAR

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

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

9 голосов
/ 10 сентября 2010

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

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

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

2 голосов
/ 10 сентября 2010

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

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

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

...