0

サイトのすべてのページを呼び出すたびに、2 つのデータベースを切り替えるのがどれくらい遅くなるのだろうと思っています。このサイトには、いくつかの一般的な設定に使用される「グローバル」データベースに加えて、さまざまなクライアント用のさまざまなデータベースがあります。データベースに接続し、DB を選択し、1 つまたは 2 つのクエリを実行し、別の DB に切り替えてからページ生成を完了する必要がある場合、各スクリプトの実行に多くの時間が追加されるのではないかと考えています。また、各 DB でデータを繰り返すこともできます。それを維持する必要があるだけです (アップグレード時にのみ変更されます)。

で、結局どれくらい速いのmysql_select_db()

編集:はい、各 DB に個別に接続できますが、これは多くの場合、PHP スクリプトの最も遅い部分であるため、特にすべてのページにあるため、これを避けたいと思います。(PHP はある種のアドレス解決 (IP またはホスト名) を行う必要があり、MySQL は両方のログイン パラメータをチェックする必要があるため、処理が遅くなります。)

4

2 に答える 2

7

両方のデータベースが同じマシン上にあると仮定すると、mysql_select_db を実行する必要はありません。クエリでデータベースを指定するだけです。例えば;

SELECT * FROM db1.table1;

また、2 つの接続を開き、接続呼び出しから返された DB オブジェクトを使用し、これら 2 つのオブジェクトを使用してデータベースを選択し、すべての呼び出しに渡すこともできます。データベース接続は、すべての mysql db 呼び出しのオプションのパラメーターです。ドキュメントを確認してください。

于 2008-11-04T22:00:34.347 に答える
1

あなたは2つのまったく異なる質問をしています。

  1. 複数のデータベース インスタンスへの接続

  2. デフォルトのデータベース スキーマの切り替え。

MySQL は、接続セットアップ時間が非常に短いことが知られています。異なるサーバーに対して2 つのmysql_connect()呼び出しを行うことは、1 回よりもほとんどコストがかかりません。

呼び出しはステートメントとmysql_select_db()まったく同じで、修飾されていないテーブル参照のデフォルト データベース スキーマを変更するだけです。USE

MySQL に関する「データベース」という用語の使用には注意してください。これには 2 つの異なる意味があります。

于 2008-11-05T01:34:22.823 に答える