Очень медленный TRUNCATE, сопровождаемый «Сервер кажется занятым» в журнале httpd - PullRequest
2 голосов
/ 28 июня 2010

У меня есть эта очень простая таблица с всего 35 строками в 5 простых столбцах (первичный ключ при автоматическом увеличении идентификатора, title (varchar), bool и 2 datetime). Работая в команде, мы импортируем данные из Google Docs, перефразируем их как SQL, чтобы выполнить TRUNCATE-> LOCK TABLE WRITE-> INSERT INTO (несколько строк) -> UNLOCK TABLE одновременно. На других больших и более сложных таблицах это работает очень хорошо, весь процесс завершается за секунду. Но на этом, это всегда занимает около 5 ~ 7 минут, чтобы закончить. Проблема в том, что он вызывает блокировки на других таблицах, и система в основном не работает в течение этого периода.

Пока система не работает, я записал> ПОКАЗАТЬ ПОЛНЫЙ ПРОЦЕССЛ; и узнал, что: - TRUNCATE занимает много времени с кодом состояния «проверка прав доступа» более 200 секунд. - по какой-то причине, когда возникает эта проблема, в журнале httpd появляется сообщение «сервер кажется занятым ...», и Apache зависает на всех фронтальных экземплярах.

Я пытался искать подобные случаи в Интернете напрасно. Это действительно спасло бы наши жизни, если бы кто-нибудь мог дать нам полезную информацию об этом ... Спасибо!

  • Сервер БД: m2.2xlarge экземпляр @ EC2
  • Фронт-серверы: m1.large instance @ EC2
  • Версия MySQL: 5.0.77
  • Клиент с графическим интерфейсом: phpmyadmin 3.2.3
  • Тип хранилища БД: MyISAM

1 Ответ

1 голос
/ 28 июня 2010

Это звучит очень странно, вы пытались сделать DROP TABLE и CREATE как обходной путь?Это может помочь вам изолировать проблему.

...