問題タブ [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.
mysql - Order By を使用した遅い SQL クエリ
私はSQLの第一人者から遠く離れており、実行しようとしています:
order by を使用すると、order by を使用しない場合よりも 20 倍遅くなります。
私に与えます:
app_id、similar_app_id、およびそれらの複合体のインデックスのすべての組み合わせを試しました。
ヒントやコツはありますか?
ありがとう
mysql - mysql 5.1.37クエリインデックスが使用されていません
パフォーマンスの低いクエリがあります。サーバーのバージョン: 5.1.37-1ubuntu5.1 (Ubuntu)
テーブルには 547545 行あります。
ご覧のとおり、説明には可能なキーがありますが、実際のキーを使用して表示されていません。
何か案は?これはうまくいくはずで、何かばかげたことをやっているようです。
mysql - possible_keys を使用していない SELECT ステートメント
主キーを持たないレガシー システムのテーブルがあります。工場で資材を出庫するためのトランザクション データを記録します。
簡単にするために、各行に job_number、part_number、quantity & date_issued が含まれているとします。
発行日欄に索引を追加しました。EXPLAIN SELECT * FROM issue_parts WHERE date_issued > '20100101' を実行すると、次のように表示されます。
鍵は見えますが、使用しませんか? 誰かが理由を説明できますか?
mysql - MySQL Explain: 'Using temporary; の原因は何ですか? ファイルソートの使用
この SQL SELECT を使用してビューを作成する予定ですが、その説明では、一時的なファイルソートを使用していることがわかります。この問題を解決するために必要なインデックスがわかりません。ほとんどの場合、インデックスを使用してソートするのではなく、ファイルソートを使用する理由が不思議です。
ここに私のテーブルがあります:
そして、これが私の見解で使用しようとしている問題のある SQL ステートメントです。
説明からの出力:
別の例として、今回は where 句を使用します。
出力の説明:
mysql - mysqlのEXPLAINを使用して考えられる問題を探す方法
サイトのストレステストとすべてが壊れていることは明らかです。
今日の問題:いくつかのページのWSOD。数時間後、1ページの問題をこのクエリに絞り込みました(願っています)。以前は1秒で実行されていました。今では>300かかります。
実行中EXPLAIN
私はこれを取得します:
見て、EXPLAIN
言うことは可能ですか
- 全表スキャンが発生している場合
- 関連する切り込みが欠落している場合
- どのテーブルまたは結合が非常に遅いか
- 「遅いテーブルを見つけるための私の探求」における他の有用な情報
更新:group_by(および関連するテーブル結合)なしでクエリを再実行します。まだ一時テーブルとファイルソートが必要なので、インデックスの問題のようです。欠落しているインデックスのすべてのテーブルを調べ始めます。
mysql - MySQLコマンドExplain無視LIMIT?
MySQLサーバーバージョン5.5.14を使用していますが、Explainコマンドを使用してこの単純なSQLクエリを試しています。
そしてそれは私にこの結果を示しています:
私の質問は、LIMIT句で指定した最初の10行を取得するのではなく、なぜテーブル全体をスキャンするのかということです。
mysql - 2 つのまったく同じ mysql クエリで、2 つの異なる「explain」出力が得られる: なぜですか?
非常に奇妙な mysql の動作を見つけました。特定のクエリを 2 回実行すると、このクエリの説明が 2 回目と異なります。
これはどのように可能ですか??
mysql - IN サブクエリで MySQL クエリを改善する
私はテーブルitems
とテーブルを持っていますitem_attributes
。
簡単にするために、テーブル項目に columnid
とcolumn があるとしますname
。もちろん、列にはインデックスがありid
ます。
テーブルには、、およびitem_attributes
の列がid
あり、インデックスは ONですitem_id
attribute_name
attribute_value
attrubute_name
ここで、結合を使用せずに、特定の属性を持つすべてのアイテムをクエリしたいと考えています。
次のクエリでこれを行います。
サブクエリ自体は高速に実行されます。
最初にクエリ自体を実行し、その結果を IN クエリに使用する場合
それも速いです。
ただし、クエリを組み合わせると非常に遅くなります (> 2 秒)。クエリ プランを調査すると、その理由がわかります。 .
このクエリを最適化する方法はありますか? サブクエリは常に小さな結果セット (<100 行) のみを返すことを知っています。
mysql - mySQL - EXPLAIN の結果を解釈してこのクエリを最適化するにはどうすればよいですか?
ここでの結果の意味を理解し、EXPLAIN
このクエリとテーブルをできる限り最適化することを目指しています。
クエリ:
(編集された書式)
説明結果: