Я разрабатываю приложение Codeigniter (2.0.2), которое будет использовать базу данных Master для всех операций записи (INSERT / UPDATE / DELETE) и реплику чтения для всех операций чтения (SELECT).
Теперь я знаю, что могу получить доступ к двум различным объектам базы данных в коде, чтобы направить отдельные запросы на конкретный сервер базы данных, но я думаю, что есть лучший способ, автоматизированный способ.Я буду использовать MySQL и Active Record, а также хочу встроить проверку Memcache - хотя она не будет использоваться немедленно, я бы хотел использовать опцию на будущее, встроенную на этом этапе.
Я думаю, возможно ли добавить какой-нибудь хук / библиотеку для перехвата запроса $ this-> db->, чтобы произошло следующее:
1) SQL-запрос получен
2) Проверьте, есть ли запрос SELECT
2a) Если SELECT, посмотрите, активен ли Memcache, если да, закодируйте SQL и проверьте ответный Memcache.
2b) Если нет ответа memcache, или Memcacheне активен, выполнить запрос как обычно через READ MySQL-сервер.
3) Запрос НЕ был выбран, поэтому выполнить запрос как обычно через WRITE MySQL-сервер.
4) Обратный ответ.
Я уверен, что, глядя на это, это должно быть довольно просто сделать, но независимо от того, как я на это смотрю, я просто не вижу потенциального ответа - но он должен быть!Кто-нибудь может помочь / помочь?
Кроме того, я также хочу иметь возможность регистрировать все команды записи SQL для устранения неполадок, по-видимому, наилучшим способом является введение 3a) Записать команду SQL в простой текстовый файл ... в схему выше.Я не верю, что MySQL на самом деле регистрирует невыбранные запросы в любом случае ... не так ли?