2017-04-05 4 views
1

私たちは1つのインスタンスに多くのデータベースを持っています。mysqlの `use my_db`と` my_db.my_table`の違いは何ですか?

私たちのクエリ言語は以下のとおりです。

use db1; select * from table1; 
use db2; select * from table2; 

しかし、我々はこのスタイルに変更した場合、MySQLサーバのCPU負荷は多くを落とし:

select * from db1.table1; 
select * from db2.table2; 

それらの間の異なる何?

どちらを使用しますか?

+0

正直言って私はそれが関係しているとは思わない。そして、違いはないはずです –

+0

@AlexandrKapustin私たちはまた違いがないはずだと思います。たぶん、フレームワークのない純粋なコードでテストするべきでしょう。 – Dozer

答えて

0

MySQLは、単一のクエリで複数のデータベースを処理できます。各テーブルは単一のデータベースに属します。正式名称はdatabase.tableです。

  • 単一のデータベースに固執している場合は、おそらくデータベースの接頭辞を使用しないでください。 USE databaseを使用すると、接頭辞を省略できます。

  • 複数のデータベースを同時に使用している場合は、決して適切なデータベースに入らないことになります。非常にリースでは、他のデータベーステーブルの前に接頭語を付ける必要があります。

私はあなたがUSE database文を適用する場合、MySQLはありませんどのように多くの仕事を知らないが、私はそれは、物事の全体的なスキームでは非常に重要ではありませんことを想像してください。通常の状況下では、単一のデータベースを使用して作業しているので、USE文を一度発行すれば終了します。

いつも2つのテーブルを常に切り替える場合、特に異なるデータベースのテーブルを結合する場合は、テーブルの前に接頭辞を付ける必要があります。

関連する問題