1

次のようなクエリがあるとします。

SELECT
    t1.c1,
    t2.c2,
    ... more fields from joins ...
FROM t1
LEFT JOIN t2 ON t1.id = t2.id
... more joins ...
GROUP BY t1.field
WHERE ...

そして、あなたはパフォーマンスの問題を抱えていて、あなたはあなたがカバーしたと思うすべての一般的な最適化このタイプのクエリでは、あなたのONGROUP BYWHERE等..しかしそれはまだ本当に遅いです。


  • それはあなたのデータベースの設計と構造から、我々はそこで何が起こっているのかを見る必要があります、我々は少なくとも"ショーテーブル"を知る必要があります。クエリと「クエリの説明」コマンド - jcho360
  • @ jcho360私自身の質問に答えました - 下記を参照してください。これは、他の誰かが同じ問題を抱えていて、すべての結合がテーブルであってビューではないことを忘れないためのものです。 - rgvcorley
  • "私はあなたが解決したことを嬉しく思います、とにかくExplainコマンドを見てください、彼はあなたがビューに参加していることを伝えてくれます、幸運を - jcho360
  • 説明にインデックスを作成したので、すべての結合がeq_ref型になっていたので、実現するまでそれがそれほど遅いのかどうかについてかなり混乱していました。 - rgvcorley

1 답변


1

すべての結合が実際のテーブルに対するものでビューではないことを確認してください。

これは明らかに明白なことを言っていることを私は知っていますが、私は結合の1つがビューに対するものであることをちょうど忘れてしまったので、しばらくの間失敗しました。

これは私が自分で答えを見つける前に尋ねることができなかった質問ですが、GROUP BYクエリの最適化に関する他のどの投稿にも記載されていなかったのと同じ問題で他の誰かを助けるために投稿したいですJOINと一緒に。私はこれがSOで受け入れられているかどうかわからないが、私はまたに受け入れられた答えに追加しましたこの郵便受け管理者がこの投稿を削除したいのであれば、私は気にしないでください。


  • "すべての結合が実際のテーブルに対するものでビューではないことを確認してください。 (y) - NullPointer

リンクされた質問


関連する質問

最近の質問