2009-08-24 7 views
4

私はデータマイニングを行い、MySQLに+ 1GBのデータベースダンプファイルのロードとアンロードを行います。私は巨大なデータベースのMySQLよりも優れた他の無料のデータベースエンジンがあるのだろうか? PostgreSQLはパフォーマンス面で優れていますか?速度は別のデータベースエンジンを代入すると、パフォーマンスが大幅に増加を提供することはほとんどありません、私はデータベース巨大なデータセットに最適なデータベースエンジン

+2

1)あなたは、データ・マイニング・ツールのどのような種類を使用してください:

ここトピックに関するいくつかの記事がありますか?ツールはJDBCアクセスを必要としますか? 2)なぜロード/アンロードする必要がありますか? 3)パフォーマンスにはハードウェアの改善が必要な場合が多く、現在の設定は何ですか?また、アップグレードの予算はありますか? –

+0

あなたは現在どのDBエンジンを使用していますか? InnoDB、MyISAMなど...? – Luke

+0

私はMySQLでInnoDBを使用しています – Mark

答えて

1

データマイニングを行っている場合は、おそらくドキュメント指向のデータベースを使用できます。 これらは、SQLを使用しない場合、リレーショナルデータベースより高速です。

MongoDB およびCouchDBはどちらも良い選択肢です。私はJavaを知らないのでMongoDBを好んでおり、CouchDBの起動と実行が容易であることがわかりました。

4

を選択するための唯一の要因であるので

私は、基本的なSQLコマンドを使用します。あなたが言及している遅さは、スキーマ設計とデータアクセスパターンに関連している可能性が高いです。おそらくあなたはそれについてもっと詳しい情報を提供することができますか?たとえば、データは時系列として保存されていますか?レコードは一度書かれたか、挿入/更新/削除されたレコードは任意ですか?

2

HDFは、NASAの地球観測システムの保存場所の選択です。これはまさに伝統的な意味でのデータベースではなく、独自の癖を持っていますが、純粋なパフォーマンスの面では克服するのは難しいです。

1

私は現在のプロジェクトでPostgreSQLを使用していますが、データベースをかなり頻繁にダンプ/リストアする必要があります。 400Mbの圧縮ダンプを復元するのに20分もかかりません。 ハードウェア構成に合わせていくつかのサーバー構成パラメータを調整する必要がありますが、試してみることもできます。これらのパラメータは、これらに限定されない:

  • のshared_buffers
  • work_mem
  • temp_buffers
  • のmaintenance_work_mem
  • COMMIT_DELAY限り、あなたは挿入する前にインデックスを削除して
  • effective_cache_size
+0

temp_buffersもcommit_delayもほとんどの人に有効です。 commit_delayの全機能は実際には機能しません。一時的なデータに本当に頼っていない限り、temp_buffersのデフォルトサイズは十分です。 PostgreSQLのサーバパラメータチューニングに関するベストガイドは、http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server –

3

膨大なデータではないそれらの2人の間。

2

データマイニングツールでサポートされている場合は、フラットファイルソースから作業することを検討してください。これにより、ほとんどのインポート/エクスポート操作が節約されます。これは、しかし、いくつかの注意点を持っている:

  • あなたはデータいじる(すでに1に慣れていないと仮定)を行うためのPerlやPythonなどのスクリプト言語に習熟取得する必要があるかもしれません。

  • メモリが必要な場合は、コンピュータのメモリを拡張するか、64ビットプラットフォームに移動する必要があります。

  • あなたのデータマイニングツールは、この方法でフラットデータファイルからの作業をサポートしていない可能性があります。その場合、あなたはバグがあります。

近代的なディスク(SATAの場合も含む)は、シーケンシャル読み取りでディスクから100MB /秒程度を引き出します。これは、何かが1GBファイルをかなり早く吸い込むことができることを意味します。

また、マシン上でSSDを取得して、DBMSのパフォーマンスが向上するかどうかを確認することもできます。

+1

です。または、メモリを8GBにアップグレードし、十分に大きなtmpfs RAMディスクを作成し、すべてランダムに実行してくださいランダムアクセスに適した媒体での操作に関連したアクセス? 2GBのRAMスティックが20ユーロになることは、おそらく最も安価な方法です。 – mikaelhg

1

あなたの質問はあまりにもあいまいであり、役に立ちません。 「パフォーマンス」とは、さまざまな人々にとってさまざまなものを意味します。私は、MySQLとPostgreSQLが重要ないくつかの領域でどのように比較しているのかを説明することができますが、情報がなくても、あなたにとって実際に重要なことを言うのは難しいです。私はWhy PostgreSQL Instead of MySQL: Comparing Reliability and Speedにこの話題の背景情報をまとめました。確かに速いのは確かにあなたがやっていることです。

データベースへのデータ読み込みが遅すぎるという問題がありますか?これはPostgreSQLが特にうまくやっていない領域の1つですが、PostgresのCOPYコマンドは特に高速なバルクロードメカニズムではありません。

クエリの実行が遅すぎるという問題はありますか?そうです、彼らはどれくらい複雑ですか?複雑なクエリでは、PostgreSQLオプティマイザはSQLのものよりも優れた仕事をすることができます。特にテーブルジョインが多く含まれる場合は特にそうです。小規模でシンプルなクエリは、MySQLで高速に実行される傾向があります。これは、クエリを実行する前にクエリを実行する方法についてはあまり考えていないためです。スマートな実行には少しオーバーヘッドがかかります。

いくつのクライアントが関与していますか? MySQLは少数のクライアントでうまくやることができます。クライアント数が多いほど、PostgreSQLのロック機構はより良い仕事をするでしょう。

トランザクションの整合性について気にしていますか?そうでない場合は、MySQLでこれらの機能をオフにする方が簡単です。PostgreSQLに比べて速度が大幅に向上します。

関連する問題