Какой тип данных я должен использовать для моей колонки? [MySQL]

0

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

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

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

Теги:
database-design

3 ответа

0
Лучший ответ

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

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

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

Текст Столбец ТЕКСТ с максимальной длиной 65 535 (216 - 1) символов

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

Длинный текст Столбец ТЕКСТ с максимальной длиной 4 294 967 295 или 4 ГБ (232 - 1) символов.

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

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

  • 0
    Я обновил свой ответ в отношении вашего комментария.
  • 0
    Также помните, что столбец Text (например, столбец varchar) имеет переменную длину. Это означает, что он использует только то пространство, которое содержится внутри поля (в отличие от CHAR). Единственное пространство, которое он использует, - это 2-байтовый префикс, чтобы база данных знала общий размер поля.
0

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

  • 0
    Если поиск является требованием, это будет лучшим вариантом.
  • 0
    Кто будет искать через неприятный кусок HTML?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню