web-dev-qa-db-ja.com

Derbyは120万件のレコードの後に​​スローダウン

私はDerbyデータベースを使用しています。120万のレコードがあると、大量の挿入は1/4から1/6の速度に低下します(データベースサイズが約6 GB、主要なテーブルが1つ、他のテーブルが小さい)。それは正常ですか?それを微調整してより速く実行するために私ができることはありますか?メインテーブルを圧縮しました。

ご質問

  • 他のデータベースを検討する必要がありますか?
  • このようなシナリオで、ダービーのパフォーマンスを、たとえばMySQLと比較するにはどうすればよいですか?
  • そのような比較はすでにありますか?

(Windows 7ベースのサーバーR2、16GB RAM、8コアマシンで実行)。

4
Mary Aubaun

免責事項:Derbyエキスパートではありません

ダービー

設定できるオプションがあります Derbyのデータページを増やす

テーブルprodtableの大量ロードの場合、検討することができます

  • prodtableと同じようにtemptableを作成しますが、インデックスはありません
  • temptableにデータを読み込む
  • temptableでインデックスを再構築する
  • prodtableをzaptableに名前変更
  • temptableをprodtableに名前変更
  • ザップ可能

MySQL

MySQLに切り替えると、データ処理のパフォーマンスを調整するために素晴らしいことができます。

  • InnoDBのみを使用して開始する
  • InnoDBをに構成できます。
    • ハイパースレッド読み取りスレッド
    • ハイパースレッド書き込みスレッド
    • 複数のCPU /コアにアクセスする
    • パーティションバッファープールのセットアップ

マルチコアパフォーマンスのためにMySQLでInnoDBを構成することに関する私の過去の投稿の一部を以下に示します

MySQLに少し偏っているかもしれませんが、 大量のINSERTに対応するようにDerbyのキャッシュが構成されていることを確認してください 。そうすれば、Derbyで大規模なトランザクションを処理できる場合、大規模なデータ移行を実行する必要はありません。

3
RolandoMySQLDBA