MySQL дает вам возможность выполнять запросы с задержкой. Пример: «INSERT DELAYED INTO ...», это приведет к тому, что запрос будет выполнен только тогда, когда MYSQL успеет принять запрос.
Исходя из вашего ввода, кажется, что вы используете таблицы MyISAM, MyISAM поддерживает только блокировку всей таблицы. Это означает, что одно обновление заблокирует всю таблицу базы данных, пока запрос не будет завершен. InnoDB, с другой стороны, использует блокировку строк, что не заставит запросы SELECT ожидать (зависать) завершения обновлений.
Так что у вас больше шансов на лучшую жизнь сисадмина, если вы перейдете на InnoDB:)
Когда дело доходит до репликации, вполне нормально разделять обновления и выбирать два разных сервера MySQL, и это, как правило, работает очень хорошо. Но если вы используете таблицы MyISAM и делаете много обновлений, проблема с блокировкой все равно останется.
Итак, мои 2 цента: сначала избавьтесь от MyISAM, затем подумайте о репликации или лучше масштабируемом сервере MySQL, если проблема все еще существует. (Ключом к хорошей производительности в MySQL является наличие как минимум размера всех индексов для всех баз данных в виде физической ОЗУ)