2009-11-26 6 views
0

Я работаю над системой управления контентом на работе. У меня будет столбец для хранения содержимого нашего контента (HTML), и я не уверен, какой тип столбца использовать. Я не хочу произвольно назначать максимальную длину, но я не знаю, является ли использование LONGTEXT или BLOB-поля излишним.Какой тип данных следует использовать для моей колонки? [MySQL]

Возможно, кто-то может дать мне подсказку или указать мне в сторону какой-то статьи «лучших практик» для этих вещей? :)

Любая помощь приветствуется

ответ

0

Вы должны закодировать код GZip и Base64, затем сохранить его в столбце «Текст».

+0

Какую пользу я получаю от GZip? Могу ли я сделать это для сжатия или есть еще одно преимущество, которое мне не хватает. – Gazillion

+0

Я бы сказал, что сжатие - ОГРОМНОЕ преимущество. Вы можете сократить время загрузки БД на веб-сервер (возможно, преувеличенное, но есть увеличение скорости). Кроме того, с течением времени вам потребуется намного меньше места для хранения HTML. – ChaosPandion

0

Используйте LONGTEXT, так что вы можете найти его.

+0

Если поиск является требованием, это был бы лучший вариант. –

+0

Кто будет искать через неприятный кусок HTML? – ChaosPandion

+0

С каких пор MySQL требует, чтобы поле было LONGTEXT для поиска? – William

2

Рекомендую прочитать http://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html, чтобы вы знали ограничения размера каждого поля. После этого вы можете выбрать, основываясь на своем понимании приложения, если вы должны разрешить больше.

Текст колонка текста с максимальной длиной 65535 (216 - 1) символов

Средний Текст колонка текста с максимальной длиной 16,777,215 (224 - 1) символов.

Длинный текст колонка текста с максимальной длиной 4294967295 или 4 Гб (232 - 1) символов.

Я думаю, вы должны установить какой-то предел. Возможно, стоит посмотреть на то, что делает другое программное обеспечение (например, Word Press).

Что касается ChaosPandion: GZip является двоичным, если вы собираетесь делать это, он должен использовать BLOB вместо этого.

+0

Я обновил свой ответ в отношении вашего КОММЕНТАРИИ. – ChaosPandion

+0

Также помните, что столбец Текст (например, столбец varchar) имеет переменную длину. Это означает, что он использует только объем пространства, который содержится внутри поля (в отличие от CHAR). Единственное место, которое он использует, это двухбайтовый префикс, чтобы база данных знала общий размер поля. – William