sql >> データベース >  >> RDS >> Mysql

MySQL:多くのテーブルまたは多くのデータベース?

    単一のデータベース内の複数のテーブルと、個別のデータベース内の複数のテーブルの間に大きなパフォーマンスの違いはないはずです。

    MySQLでは、データベース(標準SQLではこのために「スキーマ」という用語を使用します)は、主にテーブルの名前空間として機能します。データベースには、いくつかの属性しかありません。デフォルトの文字セットと照合。そして、そのGRANTの使用法 データベースごとのアクセス権限を制御するのに便利ですが、それはパフォーマンスとは関係ありません。

    単一の接続から任意のデータベースのテーブルにアクセスできます(MySQLサーバーの同じインスタンスによって管理されている場合)。テーブル名を修飾する必要があります:

    SELECT * FROM database17.accounts_table;
    

    これは純粋に構文上の違いです。パフォーマンスに影響はありません。

    ストレージに関しては、@ Chrisが推測しているように、テーブルをデータベースごとのファイルに整理することはできません。 MyISAMストレージエンジンを使用すると、常にテーブルごとにファイルがあります。 InnoDBストレージエンジンでは、すべてのテーブルを統合する単一のストレージファイルのセットがあるか、テーブルごとにファイルがあります(これは、データベースごとではなく、MySQLサーバー全体に対して構成されます)。いずれの場合も、単一のデータベースにテーブルを作成することと、多くのデータベースにテーブルを作成することには、パフォーマンス上の利点や欠点はありません。

    データベースごとに機能するMySQL構成パラメーターは多くありません。サーバーのパフォーマンスに影響を与えるほとんどのパラメーターは、サーバー全体の範囲です。

    バックアップに関しては、テーブルのサブセットをmysqldumpへの引数として指定できます。 指図。コマンドラインですべてのテーブルに名前を付ける必要なしに、データベースごとにテーブルの論理セットをバックアップする方が便利な場合があります。ただし、パフォーマンスに違いはなく、バックアップコマンドを入力するときに便利なだけです。



    1. XML_LOAD()を使用してXMLファイルをMySQLデータベーステーブルにインポートする方法。働き

    2. PHP(MySQL)エラー:警告:mysql_num_rows()はパラメーター1がリソースであることを期待しています

    3. MySQLではUNIQUEインデックスで大文字と小文字が区別されますか?

    4. Googleドキュメントをデータベースとして使用していますか?