Лучшая настройка MySQL для быстрой смены больших текстовых полей?
Я пытаюсь оптимизировать базу данных MySQL для таблицы со следующими характеристиками.
Любая идея? (механизм хранения и т. д.)
Стол:
ca. 10000 строк
каждая строка содержит одно большое текстовое поле размером:
ca. 200 кБайт в среднем.
ca. 1000 кБайт максимально.
до нескольких раз в секунду:
строки удаляются и вставляются.
данные добавляются в текстовые поля.
текстовые поля читаются.
Тип текстового поля в настоящее время LONGTEXT, как указано в CLOB Propel ORM.
1 ответ
В качестве отправной точки я бы отстаивал Innodb над MyISAM.
- Блокировка на уровне строк против блокировки на уровне таблиц для обновлений
- Сбой / устойчивый к коррупции
- Если у вас достаточно оперативной памяти, ваш набор данных может находиться в памяти (в пуле буферов innodb)
Если вы используете более новую версию MySQL с плагином Innodb, для формата файла Barracuda есть несколько отличных тестов скорости и сжатия. Хорошая запись в блоге на эту заметку (которая рассказывает о ситуации, похожей на вашу на первый взгляд):
http://www.mysqlperformanceblog.com/2008/04/23/real-life-use-case-for-barracuda-innodb-file-format/