Убедитесь, что INSERT являются параллельными для определенной таблицы MyISAM? - PullRequest
1 голос
/ 09 июля 2010

У меня есть таблица MyISAM, которая в основном содержит журнал. Кластер компьютеров выполняет однократную запись INSERT с в этой таблице со скоростью 50 вершин в секунду, но эта же таблица также SELECT извлекается веб-приложением и индексируется для соответствия этому. Однако нет UPDATE с или DELETE с.

Итак, из того, что я собрал, я должен использовать одновременные вставки. (Верно?) MyISAM обычно делает это для меня без какой-либо дополнительной работы. (Это правильно?)

Но я не могу найти способ гарантировать , что данный INSERT обрабатывается одновременно. Я знаю, что могу установить глобальную переменную concurrent_insert равной 2, но я бы не стал устанавливать ее глобально.

Итак, мои вопросы:

  • Есть ли какой-то способ, которым я не могу гарантировать одновременную вставку?

  • Если нет, могу ли я использовать команду, чтобы увидеть, соответствует ли таблица требованиям одновременной вставки? (Мне кажется, достаточно просто знать, есть ли в столе отверстия)? Потому что я также согласен на то, что могу просто следить за столом.

  • И мне также любопытно, есть ли какая-нибудь другая система баз данных, которая может лучше справляться с такого рода нагрузкой? Я полностью согласен с решением NoSQL, если это так. Пока я могу говорить с ним из Руби и С.

1 Ответ

1 голос
/ 09 июля 2010

Почему вы не хотите установить concurrent_insert = 2 глобально?Это даст вам то, что вы хотите.

Другой вариант, который вы можете рассмотреть для этого типа таблицы MyISAM, - INSERT DELAYED: http://dev.mysql.com/doc/refman/5.1/en/insert-delayed.html

...