Я прочитал этот вопрос MySQL master / slave replication, и его ответ:
Использование ведомых баз данных практически не реализовано в ядре Drupal. Если вы разрабатываете свои собственные модули, то вызовы db_query должны указать, что они хотят использовать подчиненную базу данных с помощью массива $ options. Посмотрите DatabaseConnection :: defaultOptions для того, как установить этот массив.
Есть ли способ без убийства котят взломать ядро, чтобы получить db_query()
и db_select()
сделать больше подчиненных запросов SELECT?
По умолчанию эти функции будут запрашивать мастер, если специально не указано, что нужно запросить подчиненное устройство (см. Их API). Вы должны написать db_query($query, $args, array('target' => 'slave'))
, чтобы запросить подчиненное устройство, а ядро (и все модули) не написаны для достижения этого.
Только поиск (см. Ведомая часть) и агрегатор, кажется, используют это.
Редактирование: 25 октября.
Я видел, что pressflow 7 вышел, но я не уверен, что это сильно помогает сейчас.
Я не нашел что-то подходящее, поэтому давайте попробуем немного щедрости, чтобы помочь получить ответ.
Изменить: 31 октября
Я в основном беспокоюсь о комментариях Крелла по этой теме: Что делать с рабами? ,
Главным образом, есть ли проблемы, если я отправляю SELECT
запросы подчиненному, что происходит с задержками в репликации и тем фактом, что я могу захотеть сделать это node_load()
сразу после сохранения нового узла.
SELECT
запросы? Как вы справляетесь с задержками в репликации и тем фактом, что загрузка узла сразу после сохранения может вызвать проблемы?