問題タブ [explain]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
732 参照

mysql - サブクエリで一時テーブルを使用しているが、グループ化と順序付けは使用していないmysql

実行に約 3 分かかる次の mysql クエリがあります。2 つのサブクエリがありますが、テーブルの行はほとんどありません。説明を行うと、「一時的な使用」が原因のようです。どうやら、以下の「一時的な使用」の指定に示されているように、データベースは 3 つのクエリすべてに対して一時的なテーブルを作成しているようです。

私を混乱させたのは、MySQL のドキュメントによると、temporary の使用は通常、group by と order by が原因であり、どちらも使用していないことです。サブクエリは、暗黙的なグループ化または順序付けを引き起こしますか? グループ化または順序付けに関係なく、一時テーブルを必要とするサブクエリはありますか? MySQL がより効率的に処理できるように、このクエリを再構築する方法に関する推奨事項はありますか? MySQL 設定で他のチューニングのアイデアはありますか?

ありがとう!フィル

0 投票する
1 に答える
1329 参照

indexing - monetDBがインデックスを使用していることをどうやって知ることができますか?

1億5000万件のレコードをMonetDBにロードしました。すべてのデータが単一のテーブルに挿入されます。テーブルには制約がありません(例:UNIQUE、..)。自分でインデックスを作成したことはありません。元のソースCSVファイルは約7.2GBで、データベースをインポートした後は約8GBです。で実行しましたCOUNT(*)WHERE、12秒で戻りました。ドキュメントによると:

SQL標準のインデックスステートメントは認識されますが、それらの実装は競合製品とは異なります。MonetDB / SQLは、これらのステートメントをアドバイスとして解釈し、多くの場合、高速アクセス用のインデックスを作成および維持するという独自の決定に依存して、自由に無視します。

MonetDBがインデックス自体を作成したことをどのようにして知ることができますか?使用EXPLAINしましたが、出力がわかりませんでした。これは実際のクエリです。

これがEXPLAIN出力です:

誰か助けてもらえますか?

0 投票する
2 に答える
4375 参照

mysql - SQL での Join 前または Join 後のフィルタリング

同じデータを取得するクエリが 2 つありますが、実行時間はほぼ同じです。

どちらが優れているか誰か教えてください。前者では結合前に、後者では結合後にフィルタリングを使用しました。MySQL の説明では、後者と比較して前者の行スキャンが多いことが示されています。

0 投票する
0 に答える
92 参照

mysql - MySQL でこのサブクエリにオーバーヘッドはありますか?

サブクエリを導入すると、このクエリにオーバーヘッドがあるのではないかと思います。

ユーザーに会社のIDを直接設定して、次のようなWHEREを持つように要求できます。

最初の例で示したサブクエリの導入でこれを回避しようとしていますが、パフォーマンスのオーバーヘッドが心配です。

これは、最初のクエリの EXPLAIN です (これを手伝ってください。まだ EXPLAIN 句を取得していません)。

サブクエリクエリの EXPLAIN

そして、ハードコードされたものの EXPLAIN:

ここに画像の説明を入力

0 投票する
1 に答える
305 参照

mysql - Explain に基づく SQL クエリの長​​さの判断

説明の出力に基づいて、クエリにかかる時間を大まかに見積もろうとしています。MYSQL データベースを使用しています。

クエリにかかる時間を確実に判断できないことはわかっています。概算の見積もりを探しています。つまり、1 時間、8 時間、1 日、2 週間などです。ありがとうございます。

ここに画像の説明を入力

0 投票する
1 に答える
74 参照

mysql - mysql 外部キーが機能しない

私は2つのテーブルを持っています:

その後、各テーブルに数行を挿入しましたが、値treaties.iditems.treaty同じでした。私が走るとき

私が得ました:

私は、間に外部キーがitems.treatyあり、treaties.idこのキーを使用する必要があり、タイプがすべてであってはならないと考えました。なにが問題ですか?

私を助けてください!

ありがとうございました!

0 投票する
1 に答える
1278 参照

oracle - 説明/実行プランに対するテーブル列の名前変更の影響

300以上の列と数十万のレコードを持つテーブルがあります。既存の列の1つに名前を変更する必要があります。

気になることはありますか?この操作は、説明プランなどに影響しますか?

ノート:

  1. Oracle11gでライブの本番データベースに取り組んでいます。

  2. この列は現在使用されていません。どの行にも入力されておらず、既存のクエリでこの列を参照していないことを100%確信しています。

0 投票する
2 に答える
876 参照

mysql - BLOB 列でのクエリのグループ化が遅い

次のクエリを使用して、mediumblob列から頻繁に短い値を抽出しています。

私が抱えている問題は、このクエリに時間がかかりすぎることです(100万未満のレコードで約10秒):

表は次のとおりです (無関係な列は示されていません)。

ほとんどの値が大きいため、タイプは mediumblob です。この特定のクエリで探しているものと同じように短いのは 10% 未満です。

私は次のインデックスを持っています:

MySQLは私のクエリを次のように説明しています:

期間を変更せずにバイト列の長さに関する条件を削除できることに注意してください。

このクエリを高速化するにはどうすればよいですか?

もちろん、列を追加する必要はありません。

0 投票する
1 に答える
280 参照

mysql - MySQL Explain Plan を文字列に変換する

これを変換する必要があります

外部システムでこの文字列だけを読み取るために、文字列を mysql DBM に変換します。

少なくともこの部分は文字列として必要です

0 投票する
1 に答える
92 参照

mysql - このクエリをインデックスで最適化する最良の方法は何ですか?

クエリを実行する必要がある約 3,000 万レコードのテーブルがあります。私の読書から、選択する必要があるすべてのフィールドで左端のプレフィックスを使用する複合インデックスが正しい方法であると考えましたが、クエリで Explain を実行すると、インデックスを使用していません。

これはクエリです:

解説はこんな感じ

これらはフィールドです

インデックスは次のようになります

これを最適化する最善の方法が何であるかはよくわかりません。