Оптимизация MySQL с использованием активных записей CodeIgniter с несколькими базами данных - PullRequest
1 голос
/ 07 сентября 2011

Я использую несколько баз данных, используя класс активных записей CodeIgniter.Мне пришлось отключить постоянное соединение с MySQL, потому что класс CodeIgniter Active Records не может устанавливать постоянные соединения с использованием нескольких баз данных.

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

Как я могу оптимизировать это без необходимости постоянно вызывать «изменить базу данных»?

Ответы [ 2 ]

2 голосов
/ 07 сентября 2011

Это не так удобно для пользователя, как большинство команд Active Record, но вы можете вызвать SQL напрямую следующим образом:

$query = $this->db->query("SELECT * FROM database_a.some_table");
$query2 = $this->db->query("SELECT * FROM database_b.another_table");
1 голос
/ 01 декабря 2011

Используете ли вы запросы, которые ссылаются на обе базы данных? Если нет, то не так уж сложно загрузить новый экземпляр БД для второй базы данных. То есть вы все равно будете использовать $ this-> db для первого, но вы можете использовать $ this-> db2 для второго. Я, честно говоря, понятия не имею, вызовет ли это команду «изменить базу данных», о которой вы говорите, но это, по крайней мере, НАМНОГО более устойчивый код. CI может сохранять свои соединения с каждой базой данных открытыми в течение всего сценария (не постоянное соединение), и, похоже, ваша проблема будет исправлена.

Мне никогда не требовалось несколько баз данных mysql в одном приложении, так что это полностью предположение, основанное на том, что я видел, скажем, с одним mysql db, а другим - sqlite db.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...