Страница 1 из 1

10k символов. В чем хранить?

Добавлено: 15 фев 2006, 13:15
BlackEric
В базе (FireBird 1.5.2) нужно хранить строковые данные в пределах 10к символов. В чем лучше хранить varchar или blob???

Добавлено: 15 фев 2006, 13:18
kdv
а что за данные, и насколько часто к ним будут обращаться?

Добавлено: 15 фев 2006, 13:43
BlackEric
Данные - просто текст или rtf. Задача спускаемая от руководителя к подчиненному.
Обращаться. Задача поставлена. Получена.Выполнена. Получен отчет. Тоже <10k и эта запись трогаться будет только в том случае если будут подниматься архивы.
Принцип базы 1 задача 1 одна запись.
Т.е. все, что относится к задаче лежит в одной записи, кроме списка пользователей.
Он в связанной таблице.

Добавлено: 15 фев 2006, 13:48
kdv
тогда я бы в blob положил. к тому же, мало ли, вдруг там не rtf будет...

Добавлено: 15 фев 2006, 14:11
BlackEric
Там 100% будет текст или rtf. Меня это интересует с точки зрения производительности, ресурсоемкости.

Добавлено: 15 фев 2006, 15:24
kdv
блобы хранятся на отдельных страницах, если туда не влезают. если так и будет, то это улучшит производительность. большой varchar в записи приведет к фрагментации записи (размещение ее на нескольких страницах), если содержимое такого varchar будет больше размера страницы.

так что, если к этим данным обращения идут реже, чем к другим столбцам записи, blob лучше (особенно, если блоб всегда вынимают применительно к конкретной записи, и никогда не выбирают несколько штук сразу).

обнаружить фрагментацию записей блобами можно IBAnalyst-ом, прочитать о ней можно в его хелпе (доп. вопросы и ответы).