Как быстро происходит переключение БД с помощью PHP + MySQL? - PullRequest
0 голосов
/ 05 ноября 2008

Мне интересно, насколько медленно будет переключаться между 2 базами данных при каждом вызове каждой страницы сайта. На сайте есть много разных баз данных для разных клиентов, а также «глобальная» база данных, которая используется для некоторых общих настроек. Мне интересно, будет ли добавлено много времени для выполнения каждого сценария, если он должен подключиться к базе данных, выбрать базу данных, выполнить запрос или 2, переключиться на другую базу данных и затем завершить генерацию страницы. Я также мог бы повторять данные в каждой БД, мне просто нужно поддерживать их (будет меняться только при обновлении).

Итак, в конце концов, как быстро mysql_select_db()?

Редактировать: Да, я мог бы подключаться к каждой БД отдельно, но, поскольку это часто самая медленная часть любого PHP-скрипта, я бы хотел этого избежать, тем более что он есть на каждой странице. (Это медленно, потому что PHP должен делать какое-то разрешение адресов (будь то IP или имя хоста), а затем MySQL должен проверять параметры входа в систему оба раза.)

Ответы [ 2 ]

7 голосов
/ 05 ноября 2008

Предполагая, что обе базы данных находятся на одной и той же машине, вам не нужно выполнять mysql_select_db. Вы можете просто указать базу данных в запросах. Например;

SELECT * FROM db1.table1;

Вы также можете открыть два соединения и использовать объект БД, который возвращается из вызова соединения, и использовать эти два объекта для выбора баз данных и передачи во все вызовы. Соединение с базой данных является необязательным параметром для всех вызовов базы данных mysql, просто проверьте документы.

1 голос
/ 05 ноября 2008

Вы задаете два совершенно разных вопроса.

  1. Подключение к нескольким экземплярам базы данных

  2. Переключение схем базы данных по умолчанию.

MySQL, как известно, имеет довольно быстрое время установки соединения; сделать два mysql_connect() звонка на разные серверы чуть дороже, чем один.

Вызов mysql_select_db() в точности совпадает с оператором USE и просто меняет схему базы данных по умолчанию для неквалифицированных ссылок на таблицы.

Будьте осторожны при использовании термина «база данных» вокруг MySQL: он имеет два разных значения.

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