問題タブ [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 - ファイルソートと一時を使用してクエリを最適化する
誰でもこのクエリを最適化するのを手伝ってくれますか? 実行に時間がかかります:
su_pref テーブルには約 900,000 行あります
そして、これは EXPLAIN を使用したときに得られるものです
EXPLAIN を使用してクエリを最適化する方法を理解するのに本当に苦労しているので、どんな助けでも大歓迎です。
テーブルの定義は次のとおりです。su_pref テーブルは非常に大きいので、いくつかのフィールドを取り除きました
-
-
-
前もって感謝します
mysql - [「in 句」を使用した mysql クエリ] のパフォーマンスの向上
2 つのテーブルからデータを取得するクエリがあります。
table1
table1_id
主キーであるint フィールドがあります。
table2
2 つのフィールドがあります。table1_id
、int フィールド ( を参照table1.table1_id
)、およびfield1
、ビット フィールド。
table2
:table1_id
とには 3 つのインデックスがありますfield1
(table1_id_field1
インデックスは名前で示されるフィールドにあります)。
次のクエリがあります。
このクエリのプラン ( を使用して取得EXPLAIN
) は次のとおりです。
クエリに where 句を追加すると、次のようになります。
クエリは、以前ほど効率的なインデックスを使用しなくなりました。クエリプランは次のとおりです。
以前 (29858) よりも多くの行 (98913) を検索するようになり、元のクエリで以前に使用していたインデックスを使用しなくなりました (field1
代わりにtable1_id_field1
.
私の質問は次のとおりです。
追加の句を含む 2 番目のクエリが、最初のクエリで使用していたインデックスを使用していない理由はありますか?
を使用する以外に、mysql により効率的なインデックスを選択させる方法はあります
FORCE INDEX
か? 多分私は別のインデックスを追加する必要がありますか?
mysql - MySQL:「EXPLAIN」は同様のクエリに対して異なる説明を示しています
user_id(キー:MUL)に一意でないインデックスを持つデータベースにテーブル'posts'があります。
このテーブルの場合、explainは、タイプが「REF」である場合に予想される説明を示します。
2番目のテーブル「followers」があります。「user_id」と「follower」は非一意のインデックスの一部です。
ただし、このテーブルでは、タイプは「ALL」です。前の表の「user_id」と同様に「 REF 」であると予想しましたが、この「user_id」にも一意でないインデックスがあります。これについて何か説明はありますか?
mysql - MySQLクエリの最適化、EXPLAIN、実行速度の低下
いくつかのクエリでいくつかの実際の問題がありますが、これは特に問題です。以下の情報。
tgmp_games、約2万行
tgmp_reviews-約20万行
これがクエリです。3秒かかります。
説明
私は、最も視聴された15のゲームを取得しようとしています。次に、各ゲームについて1つのレビュー(どちらが理想的であるかは重要ではありません、r_score)を取得します。
誰かが私がこれがとてもひどく非効率的である理由を理解するのを手伝ってもらえますか?
mysql - mysql クエリの実際の実行計画を表示する
実行されたクエリの実行計画の実際のステップを表示する方法が mysql にあるかどうか疑問に思っていました。
たとえばEXPLAIN SELECT ...
、mysqlが何をするかを示していますが、実際にクエリを実行し、実行で使用された実行計画を表示する方法はありますか?
postgreSQL がこの機能を提供していることがわかりますEXPLAIN ANALYZE SELECT...
MySQL に同等の機能はありますか?
mysql - 「FileSort」を使用したMysql Order by句
私は次のようなテーブル構造を持っています
次のようなクエリを起動すると
結果を次のように出力します
主キーとして定義したインデックスが見つからないのはなぜですか?
mysql - インデックスを適切に使用していないmysqlのテーブルに参加しますか?
結合しようとしている 4 つのテーブルがあり、結果を新しいテーブルに出力します。私のコードは次のようになります。
すべてのテーブルには複数のインデックスがあり、 tableのa
場合は一意のレコードを(dte, permno)
識別し、 tableのb
場合はdte
id が一意のレコード、 table のc
場合は(yr, permno)
id が一意のレコード、 tabled
の場合は id が一意のレコードを識別します(dte, permno)
。select
クエリの部分からの説明は次のとおりです。
なぜ mysql はこれを処理するために非常に多くの行を読まなければならないのでしょうか? これを正しく読んでいる場合、(264129*16*12336)
行を読み取る必要があります。これには1か月かかります。
誰かがここで何が起こっているのか説明してもらえますか?
performance - ORACLE EXPLAIN PLANの分析
ジャスパー レポート [PDF 形式] の生成中にブラウザがハングします。このレポートは、以下に示す説明プランのクエリを実行します。
クエリの分析を手伝ってください。このクエリに時間がかかりすぎていませんか? また、このレポートの生成中にスタック スレッドに気付きました。
mysql - Mysql - インデックスを使用しない「Select like」
MySQL (5.5.24、WinXP) でインデックスをいじっていますが、使用時にサーバーが 1 つのインデックスを使用しない理由がわかりませんLIKE
。
例は次のとおりです。
テストテーブルを作成しました:
次に、 にインデックスを追加しましたstartDate
。(列が日付時刻ではなくテキストである理由を聞かないでください。これは単純なテストです):
その後、約 200,000 行を追加しました。startDateには 3 つの値がありました。(それぞれの登場回数の3分の1..7万回近く)
したがって、次のようにEXPLAINコマンドを実行すると:
答えは次のとおりです。
したがって、キーが使用され、行数が 200,000/3 に近いため、すべて問題ありません。
問題は、クエリを次のように変更した場合 (「=」を「LIKE」に変更するだけ):
この場合、答えは次のとおりです。
そのため、インデックスは現在使用されていません (キーは null で、完全なテーブルに近い行.. type=all が示唆するように)。
MySQL のドキュメントによると、LIKE DOES はインデックスを使用します。
それで、私はここで何を見ていませんか?問題はどこだ?
ご協力いただきありがとうございます。
mysql - インデックスを使用しないWHERE句のORを含むMySQLの全文
初めて投稿します... 通常は検索で答えを見つけることができますが、これはあいまいな状況のようです。
ポイントに。親テーブルからの検索用に特別に設計されたテーブルを使用して、いくつかの検索を作成しました。私が作成したクエリが、WHERE 句で OR を使用する場合に PRIMARY KEY インデックスを使用しない状況に遭遇しましたが、AND を交換すると意図したとおりに機能します。テーブルを次に示します。
クエリ。クエリでは、animation_title と tag_text のウェイトが異なることに注意してください。
と説明すると……。
どうして??このクエリを何度か書き直しましたが、オンラインで読んだものはすべて、このクエリが正しく記述されていることを示しているようです。何か案は?前もって感謝します!