問題タブ [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.
sql - ORACLE: 挿入のプランの説明
次のステートメントを実行すると、値がテーブルに挿入されないのはなぜでしょうか。あれは正しいですか?そして、値を挿入してExplain Planを見ることは可能ですか?
mysql - EXPLAIN 印刷のエクストラ - 「const テーブルを読み取った後に WHERE が認識されない」
「million_words」という単純なテーブルがあります。2 つの列を持つ 1 つの行があります -> id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY & word VARCHAR(50 NOT NULL.
このクエリを実行します-:EXPLAIN SELECT * FROM million_words WHERE word = '-anon'
行がテーブルに明確に存在する場合でも、列には:Extra
が出力されます。'Impossible WHERE noticed after reading const tables
どうしたの
mysql - IN()句を使用すると、Filesortが生成されます
私は簡単なテーブルを持っています->
私のテーブルエンジンはMyISAM
です。
複数の列のインデックスが必要combo1
ですby_id,posted_on,id
このクエリを実行します->
Extra
コラムは言うそしてUsing where
キーコラムは言うcombo1
しかし、私がこのクエリを実行すると->
Extra
列にはが表示さUsing where; Using filesort
れ、キー列にはが表示されますcombo1
。
filesort
QEPは、オプティマイザが「id」インデックスが付けられたインデックスcombo1を使用していることを示しているのに、なぜ2番目のケースで発生するのですか。
mysql - LEFT JOIN は INNER JOIN よりもはるかに高速です
私は2つのテーブルを持っています - >
ユーザー
/li>ping
/li>
このクエリを実行します->
Extra
pimgs の下の列にはUsing where; Using temporary; Using filesort
、ユーザーの下には と表示されていますUsing where; Using join buffer
。
このクエリを実行します->
Extra
pimgs の下の列にはUsing where
、users の下は空です。
何が起こっている?
mysql - WHEREステートメントのORの全表スキャン
だから私はこのクエリを持っています
そして、テーブルrで全表スキャンを実行しています
出力の説明:
このクエリを変更して、全表スキャンを実行しないようにするにはどうすればよいですか?おそらくUNIONを使用できることはわかっていますが、必要な場合を除いてUNIONは使用したくありません。
編集
クエリをUNIONに書き換えることは実際に機能しました...これがUNIONクエリです
そして出力を説明する
しかし、もう一度、私はこれのためにUNIONをしたくありません
mysql - MySQLクエリ最適化のヒントが必要
モンスターを手伝ってくれませんか。
これに問題はありますか?
1秒未満の実行時間に到達したいのですが、可能ですか?
DBの構造を理解するために必要なその他のデータについてはお問い合わせください。ヒントとコツは大歓迎です!
実行時間
クエリの説明
以下はshow status like 'Handler%'
、クエリが実行された後の正確な結果です
データベース構造:https ://gist.github.com/moiseevigor/4988fc8868f92643c9fb
編集1
インデックス作成後
実行時間は2倍短縮されましたが、それでもORD_CLI_MULTI
インデックスにヒットしています
mysql - MySQL: 結合された列でグループ化するインデックス
JOIN を実行するためにインデックスを最適化し、結合されたテーブルの列の 1 つを GROUP BY しようとしています。
以下のスクリプトを実行してインデックスをいじってテストしていますが、3番目のクエリに必要なインデックスがわかりません。
解決済み:ダミー データを追加すると、SQL の動作が異なり、以前に試したインデックスの 1 つが問題なく動作します。
mysql - 順序付きの非常に単純なクエリで「ファイルソートを使用する」ことを避けることはできません
選択クエリを作成しようとしていますが、説明クエリを使用する場合、mysql は常に「ファイルソートの使用」を追加で使用します。
最も単純なクエリを試してみましたが、問題は解決しません。私のテーブル「Partidas」の構造は次のとおりです。
テーブルには約 1000 ~ 5000 行 (非常に少ないデータ) がありますが、常にファイルソートを使用します。テストに使用しているクエリは次のとおりです。
結果は次のとおりです。
ただし、クエリで制限を変更した場合、たとえば制限0,5; 結果も変わる
mysql 構成では、buffer と sort の変数は次のとおりです。
しかし、これらの値を変更しようとしましたが (8MB まで増やしました)、結果は同じです
ご協力ありがとう御座います
mysql - MySqlはどの列にインデックスを配置する必要がありますか?
私はこのクエリを持っています:
私の問題は非常に具体的です。それは次の行に関するものです:
EXPLAIN を使用すると、このクエリが悪いようです。私はこのテーブルを取得します (c = 連絡先): 38307 行。クエリに従って、どの列にインデックスを配置する必要がありますか? mobile1 を試しましたが、改善はありませんでした (ところで、family_id は連絡先テーブルでインデックス化されています)。
説明結果の画像を添付します。
または、誰かがクエリの最適化を手伝ってくれるかもしれません...
mysql - この遅いクエリを最適化する方法は?
実行速度が非常に遅い次のクエリがあります(ほぼ50000レコード)
MySQLクライアントバージョン5.0.96を使用しています
このクエリを使用してEXPLAINEXTENDED呼び出しを実行すると、次の結果になります。
次の列にインデックスがありますnews_id(主キー)date_onlineアクティブ化されたcategory_id
EXPLAIN EXTENDEDの結果を見ると、USING_WHEREが表示されます。FILESORTの使用。どちらも悪いことは知っていますが、これを修正する方法がわかりません。