2012-05-16 2 views
0

У меня есть некоторые проблемы на моем сервере, и мне нужно улучшить ее.php/MySQL - проблема с таблицей всегда «сломана»

Во-первых, каждые 2 часа, я вставляю/обновляю/удаляю около 1 миллиона результатов (которые являются всей таблицей) в таблице MyISAM, и таблица должна быть доступна в течение этого времени с моего сайта.

Около 1 раза в месяц мой сайт не отображается и отображается сообщение «Не удается подключиться к базе данных». Когда я перезапускаю сервер, я вижу, что эта таблица должна быть восстановлена.

Есть ли способ предотвратить «разбивание» моего стола или его автоматическое восстановление? Должен ли я изменить двигатель на innoDB? Зачем?

Во-вторых, во время этой операции мой сайт работает очень медленно, и это не только страница, на которой показаны результаты этой таблицы.

У меня есть полный доступ к своему серверу, но я не знаю, что я ищу ... Эту операцию хрон работы с хорошим из 19

Я хочу, чтобы мой сайт, чтобы быть на что бы я ни делал в фоновом режиме. Операция, которую я выполняю, занимает около часа, чтобы выполнить ее, и не имеет значения, требуется ли это больше.

+0

Есть ли причина, по которой вы работаете против живого стола, а не с копией? –

+2

нанять db professional на пару часов. –

+0

@Brandt: Но как я могу скопировать вторую таблицу в живую без опорожнения таблицы?Если я его опорожу, пользователи не будут видеть никаких результатов во время операции. – Marm

ответ

0

Операция является хрон работу с хорошим из 19

Запуск задания с низким приоритетом не делает много смысла.

каждые 2 часа, я вставляю/обновление/удаление около 1 миллионов результатов (которым является вся таблица)

Это много данных. Вы действительно нажимаете на конверт того, на что способна система. Что касается того, как исправить проблему ... Сколько усилий было бы попытаться использовать innodb? ИМХО меньше, чем сообщение здесь, ожидая ответов и опробовав их.

Есть много других вещей, которые вы могли бы попробовать - например, запустить задание cron против теневой копии таблицы и заменить ее вместо таблицы, доступной передним концом (но сама по себе это не решит коррупция).

Конечно, у меня возникли проблемы с выполнением большого количества удалений по таблицам MyISAM.

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

и это не только страница, на которой показаны результаты этой таблицы.

Даже если вы отключите доступ к данным о быстром обороте через задания cron и URL-адреса для конечных пользователей? Это совершенно другая проблема.

+0

Безупречная вещь, веб-сервер полностью недоступен, пока работа cron работает. – Marm

+0

Если я попрошу innoDB, это потому, что я хочу иметь плюсы и минусы, прежде чем совершу большие изменения. – Marm

+0

Вы сказали, что у вас возникли проблемы с выполнением большого количества удалений по таблицам MyISAM. Было бы лучше с innoDB? – Marm

Смежные вопросы