Способ, которым мы используем нашу базу данных master-slave, заключается в том, чтобы использовать master для всего «активного использования» и slave для всех отчетов (где не имеет значения, что данные все еще немного «догоняют»). В зависимости от ваших потребностей, на главном устройстве могут происходить манипуляции с данными, а на ведомом устройстве - считывание всех данных. Это особенно помогает, когда у вас есть блокировка вставок или обновлений. (Примечание. Также учитывайте синтаксис MySQL «вставка с задержкой», где это возможно, что также помогает избежать блокировок.)
Что касается поддержки PHP для этого, все, что вам действительно нужно, - это поддерживать чистую обработку для нескольких (двух) соединений с базой данных и использовать главное (чтение / запись) или подчиненное (ТОЛЬКО ЧТЕНИЕ) соединение БД по желанию.