Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2014, 02:13   #1
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,386
По умолчанию Проектирование базы данных в Postgres: выбор типа данных между TEXT и VARCHAR

Дорогие форумчане, мне необходимо создать в Postgres базу научных публикаций.
У научной статьи есть краткий заголовок и длинное название. Вот для этого длинного названия (в документе Word занимает 2-3 строчки) какой тип данных лучше выбрать Varchar или все таки Text?

С одной стороны, с Varchar можно прогореть, так как необходимо указывать его размерность - а вдруг не хватит? С другой стороны, он более гибкий по длине.

Но я как-то больше склоняюсь в сторону использования типа Text. Прочитав мануал, я поняла, что Text тоже может быть гибким типом (variable-length character string) и для этого не обязательно указывать его размерность. Но меня насторожила строчка (раздел Как много дискового пространства в базе данных нужно для сохранения данных из обычного текстового файла? )
Код:
24 байт: на каждый заголовок строки в таблице (приблизительно)
+ 24 байта: одно поле с целочисленным типом и одно текстовое поле
+  4 байта: указатель на странице для всей табличной строки
  ----------------------------------------
   56 байт на строку в таблице
Вот 56 байт на одну строку это много или мало? Если в каталоге будет 50-70 публикаций, я представляю сколько это все будет весить.

Какой тип лучше выбрать для оптимизации хранения длинного текста в базе - чтобы был гибкий по длине и весил не так много? Этот выбор должен быть не просто с потолка взятым, а научно обоснованным, поэтому мне хотелось бы узнать Ваше профессиональное мнение.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan

Последний раз редактировалось Blondy; 05.03.2014 в 02:17.
Blondy вне форума Ответить с цитированием
Старый 05.03.2014, 03:07   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

text.
это нормальный размер, у меня на работе базы гигами вертятся и норм.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.03.2014, 23:21   #3
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,386
По умолчанию

Дорогой Пепел Феникса, премного Вас благодарю!
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 06.03.2014, 00:06   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

текст грубо говоря когда варчара не хватает, если хватает то текст не имеет смысла пользовать
eval вне форума Ответить с цитированием
Старый 06.03.2014, 00:58   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
текст грубо говоря когда варчара не хватает, если хватает то текст не имеет смысла пользовать
текст еще более удобен на данные сильно переменной длины.
например на рабте у меня сохраняется весь лог от работы определенного потока в ячейку с текстом, ибо варчар там не применишь.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.03.2014, 01:10   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

в пределах размера варчара, меняйте длину как зохочется хоть пустая строка хоть до упора, потому как он для того и сделан
если у вас в варчар не влазит то вы конечно юзаете текст
в чем вопрос то?
eval вне форума Ответить с цитированием
Старый 06.03.2014, 02:09   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну да, впрочем упустил что тут речь о заголовке все же, у него поидее логичный лимит есть все же.
так же еще зависит от того будет ли сортировка(в том числе индекс) и тп операции по длинному заголовку, так как варчар все же с этим лучше справляется, но в тоже время там идет расход ОЗУ на это.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проектирование базы данных KastorTroy Общие вопросы по программированию, компьютерный форум 0 11.06.2013 15:15
проектирование таблицы базы данных Anton PHP 0 23.04.2013 22:01
Проектирование реляционной базы данных Serega_bolt БД в Delphi 3 20.03.2012 03:32
Проектирование базы данных Xeon332 Помощь студентам 5 23.12.2008 19:40
ПРОБЛЕМА ДОБАВ ДАННЫХ В ПОЛЯХ ТИПА TEXT NTEXT В MYSQL2000 shurik12 БД в Delphi 2 07.10.2008 20:31