0

それぞれ平均 250 万行を含む正規化されたテーブルはほとんどありません。次に、結合を含む選択クエリがあります。実行には 30 分以上かかります。db サーバーは、9 GB の RAM とクアッド コア Xeon プロセッサを搭載したマシンで実行されます。私はビッグデータを扱ったことがないので、それが悪いクエリの問題なのか、それともハードウェアの問題なのかを理解しようとしています。どんな情報でも大歓迎です

4

2 に答える 2

1

私の経験では、30 分のクエリは厳密には DB サイズの結果ではありません。

このような状況には、クエリ時間を考慮しているものに応じて、多くの変数があります。ユーザー側で認識される実行時間について言及していますか (例: Web ページの要求またはアプリケーションの応答時間)? それとも、データベースで直接 (DB マネージャーまたはコマンドラインを介して) 実行された生のクエリを参照していますか?

実際にデータベースで生のクエリの実行時間を直接参照している場合、ボトルネックを特定するための次のステップは、SQL EXPLAIN 修飾子を使用するか、HeidiSQL のようなアプリケーションを使用してクエリをベンチマークし、クエリ コンポーネントの内訳を取得することです。 .

私の推測では、インデックスを正しく利用していないため、DB は一時的なインデックスとテーブルを作成し、これらに対して実行する必要があります。それは私のひざまずく仮定です。

私たちの切り捨てられた開発データベースは、100 万から 300 万行の範囲のテーブルに対して複雑なクエリを実行します (これには、運用データベースの小さなサブセットが含まれており、まだ 16 ギガでクロックインします)。15 分ほどかかることもありますが、それらは巨大なクエリです。

于 2013-09-12T12:33:32.033 に答える
0

ソフトウェアに自信を持つ前に、ハードウェアとは何の関係もありません。EXPLAIN PLAN の詳細を記載したクエリを投稿してください。

于 2013-09-12T15:23:29.730 に答える