1

その場でテーブルを作成する必要があるプロジェクトがあります。テーブルを作成するときは、各テーブルで少なくとも1000列をサポートする必要があります。すべてのINT、日付、ビットがインデックスになります。したがって、1つのテーブルに約400のインデックスが存在する可能性があります。データがサーバーにアップロードされると、テーブルに対して他の挿入や更新は実行されません。luceneのようなライブラリを使用してテキストにインデックスを付けます。

私の質問は次のとおりです。

  1. CUBRIDは1つのデータベースで数千のテーブルを処理できますか?
  2. 数千の列と数百のインデックスを持つテーブルで選択した場合のCUBRIDのパフォーマンスはどれくらいですか?
  3. CUBRIDには、アドホッククエリを実行してテーブルを管理するためのWindows GUIインターフェイスがありますか?
  4. DDLステートメントとDMLステートメントを同じトランザクションに含めることはできますか?

私はここでデータベースの正規化設計の問題をよく知っています。私は正規化の問題を十分に調査し、多くのテーブルと列を作成することが最善の解決策であることに気づきました。

4

1 に答える 1

2

免責事項:私はCUBRIDチームの一員です。

短い答え:

  1. はい。
  2. 依存します。
  3. はい。
  4. はい。

長い答え:

  1. CUBRID RDBMSのサイズ制限で説明したように、十分なディスク容量がある限り、テーブルごとに無制限の数のインデックスを使用して無制限の数のテーブルを作成できます。

    ただし、テーブルあたりの列数は6400に制限されているので、これで十分だと思います。

  2. それはあなたが持つつもりのレコードの数に依存します。1行にそれほど多くの列がなくても、それほど重要ではありません。レコード数は、データボリュームサイズ(データが保存されているディスク上のファイル)だけでなく、インデックスキーと値が保存されているインデックスボリュームサイズにも影響します。数千の列がある現在のスキーマ設計では、インデックスボリュームサイズはデータボリュームサイズよりも大幅に大きくなると思います。これは、すべてのインデックスに、インデックスを作成する列のすべての値のコピーが格納されるためです。

    適切なインデックスのセットを作成すると、パフォーマンスを向上させることができます。

    1. クエリを最適化する方法の詳細については、CUBRIDのインデックス最適化を確認してください。
    2. クエリをさらに最適化するには、インデックスヒントを活用します。


    ただし、データの正規化を真剣に検討する必要があります。

    また、ハードウェア構成はサーバーのパフォーマンスに大きく影響します。あなたの場合、大容量のRAMとCPUを強くお勧めします。

    他のRDBMSは、そのようなスキーマを操作するときに同様の問題に直面します。一般に、CUBRIDは、明確に定義されたインデックスで高いSELECTパフォーマンスを提供します。したがって、これに焦点を当てる必要があります。

  3. データベースの管理に使用できるGUIツールは3つあります。

    1. CUBRID Manager:CUBRID用のオールインワンの強力なデータベース管理ツール
    2. CUBRID Web Manager:CUBRIDManagerのWebベースの代替手段。
    3. CUBRIDクエリブラウザ:ホスト管理および監視機能のないライトバージョンのCUBRIDManager。
  4. CUBRIDはSQL92標準に準拠しています。したがって、テーブルを定義し、同じトランザクション内にレコードを挿入できます。

于 2013-02-19T11:36:44.947 に答える