Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Размер поля TEXT 
V
    Опции темы
_Y_
Дата 15.6.2007, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Заморочились мы проблемой неприятного роста размера базы на диске. Заподозрили, что причина в слишком длинном тексте помещенном в одно из полей одной из записей. Стали подробнее разбираться с тем, как работает тип TEXT. Чтение инструкций на http://dev.mysql.com/doc/refman/4.1/en/sto...quirements.html нас изрядно запутало. Понятно, что размер поля подстраивается под длину лежащего в нем текста. Непонятно:
  • Подстройка под длину идет по отдельности у каждой записи или для всей "колонки"? Понятно, что во втором случае одна длинная строка заставит все записи таблицы отвести полю стилько же места, что бессмыскенно и жестоко как "Поле чудес" на китайском языке.
  • Уменьшится ли рашод места если уже после создания записи длинную строку в поле заменить короткой?

ЗЫ: Используются таблицы InnoDB


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
muzer
Дата 15.6.2007, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 31.8.2006

Репутация: 30
Всего: 31



1) По отдельности у каждой записи.
2) Не всегда, не сразу. Если есть индексы, то останутся дырки, можно воспользоваться OPTIMIZE TABLE или эквивалентным в случае InnoDB - "ALTER TABLE table Engine=InnoDB" для дефрагментации индекса. В MyISAM аналогично плюс OPTIMIZE дефрагментирует ещё и файл данных.

В доках на 4.1 про text немножко написано, для 5 не встречал пока.
http://dev.mysql.com/doc/refman/4.1/en/sil...mn-changes.html
"If any column in a table has a variable length, the entire row becomes variable-length as a result"
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0370 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.