CodeIgniter - подключаться к базе данных только при наличии запроса для запуска - PullRequest
2 голосов
/ 06 мая 2011

В данный момент я загружаю класс базы данных в автозагрузку, которая автоматически создает соединение с mysql. Если нет запросов, соединение все равно будет создано.

Для производительности я хочу подключиться к mysql только в том случае, если был выполнен запрос.

Каков наилучший способ добиться этого?

Я имею в виду написание функции модели, через которую выполняются все запросы, которая обнаруживает, была ли подключена база данных или нет, и просто вызывает $this->load->database(), если не раньше, $this->db->query().

Проблема в том, что мне придется изменить все мои $this->db->query() ссылки в моем коде, что является болью.

В идеале я бы хотел расширить функцию $this->db->query() для поддержки этого.

Есть идеи?

1 Ответ

3 голосов
/ 06 мая 2011

Вы можете изменить свойство autoinit вашей конфигурации базы данных.

$db['mydb']['autoinit'] = false;

Это приведет к тому, что ваш класс базы данных не будет инициализирован (включая подключение к серверу) при его создании, вместо этого это произойдет при первом запросе.происходит.

См. страница конфигурации базы данных

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