Лучшая настройка MySQL для быстрой смены больших текстовых полей? - PullRequest
3 голосов
/ 21 декабря 2010

Я пытаюсь оптимизировать базу данных MySQL для таблицы со следующими характеристиками.

Есть идеи? (хранилище и т. д.)

Таблица:

  • ок. 10000 строк

  • каждая строка содержит одно большое текстовое поле размером:

    ки. 200 кБайт в среднем.

    ки. Максимально 1000 кБайт.

  • до нескольких раз в секунду:

    строки удалены и вставлены.

    данные добавляются к текстовым полям.

    текстовые поля читаются.

Тип текстового поля в настоящее время LONGTEXT, как указано в CLOB Propel ORM.

1 Ответ

1 голос
/ 22 декабря 2010

В качестве отправной точки я бы рекомендовал Innodb вместо MyISAM.

  • Блокировка на уровне строк и блокировка на уровне таблиц для обновлений
  • Удар / устойчивый к коррупции
  • Если у вас достаточно ОЗУ, ваш набор данных может находиться в памяти (в пуле буферов innodb)

Если вы используете более новую версию MySQL с плагином Innodb, для формата файла Barracuda есть несколько отличных тестов скорости и сжатия. Хорошая запись в блоге на эту заметку (которая рассказывает о ситуации, похожей на вашу на первый взгляд):

http://www.mysqlperformanceblog.com/2008/04/23/real-life-use-case-for-barracuda-innodb-file-format/

...