2015-06-18 2 views
1

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

Размер колонки mail10000. Но у меня возникли проблемы с сохранением текста. Поскольку я не уверен, сколько соответствий может произойти, я не знаю, какое хорошее число будет для столбца.

Двигатель InnoDB. Могу ли я использовать какой-то метод сжатия столбчатых символов в MySQL, чтобы избежать увеличения размера столбца?

И, если я продолжу и увеличу колонку varchar, скажем, 20000. В таблице содержится около 2 миллионов записей. Будет ли это хорошо?

+0

@ D4V1D - спасибо за редактирование. Я буду помнить об этом :) – MontyPython

ответ

3

Вы, вероятно, ищете MySQL COMPRESS() и UNCOMPRESS() функцию для сжатия данных для хранения и извлечения соответственно.

Также смотрите на InnoDB Compression Usage.

+0

Использование запроса JPA на бэкэнд. Вам придется искать решение для извлечения данных таким же образом, потому что данные являются следствием сообщений электронной почты или твиттера или чего-то еще. – MontyPython

+2

'COMPRESS()' не будет работать, если вы не измените на 'VARBINARY' или' BLOB'. (Я предполагаю, что это недопустимо.) Единственным вариантом может быть сжатие InnoDB; но это даст вам всего лишь улучшение. –

1

Пока данные не нуждаются в редактировании, вы можете использовать движок архива.

+0

Все столы находятся на InnoDB. Я не собираюсь это менять. – MontyPython

Смежные вопросы