0

これらの用語のあいまいさと区別しようとすると、ますます混乱します。他の結合で機能するテーブルのキーを取得できないという理由だけで、必要以上に時間がかかるクエリがあります。

t1 には「一意」の列が 1 つしかありません。他の列は 73.8% 一意であり、それらをキー、制約、インデックス、または探しているものとして組み込む方法がわかりません。

SELECT t1.*, 
    (SELECT
         t3.comments
     FROM dashboard_data.unit_comments As t3
     WHERE t1.sr=t3.sr) comments,
    (SELECT
         t4.priority
     FROM dashboard_data.units_to_ship As t4
     Where t1.rma=t4.rma) priority
FROM report_tables.idle_report As t1

したがって、基本的には、SR と RMA を独自のキーにして、このクエリのすべてのテーブルにキーを使用できるようにしたいのですが、1 日かけて Web を検索し、さまざまな情報源によるこれらの用語の解釈を読んでも、まだ理解できません。このクエリを最適化するために何をする必要があるかを説明します。

これはよく聞かれることを知っているので申し訳ありませんが、他のいくつかの質問と回答を読んだ後でも、それらを私の特定のケースに適用できないようです. これにキーを使用することはできますか? さらに情報が必要な場合はお知らせください。また、EXPLAIN SELECT に貼り付けようとしましたが、タブ区切り (Excel) コピーを簡単にフォーマットする方法がわかりません。書式設定の完全なリファレンスには表示されませんでした。

4

1 に答える 1

0

わかりました、それで、私は最終的に答えを見つけたかもしれないと思います. 主キーは一意であり、一意のみです。主キーを使用しても、個別のインデックスを使用できます。そこで、ALTER TABLE を使用して RMA と SR のインデックスを作成してみます。

私が収集したものから、制約が何であるかはまだわかりませんが、キーまたはインデックスの同義語にすぎないと思います。

これらは私の発見です:

  • インデックスまたは PK は、単一または複数の列にすることができます
  • インデックスまたは PK はプレフィックスにすることができます
  • PK は 1 つしか存在できません
  • 多くのインデックスが存在する可能性があります
  • PK は一意である必要があります
  • インデックスは一意または一意ではない可能性があります

上記のステートメントは正しいですか? (少なくとも基本的な情報については) 見逃していませんか?

于 2010-06-07T20:11:40.660 に答える