У меня есть эта очень простая таблица с всего 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