検索

ホームページ  >  に質問  >  本文

mysql - 为什么使用Group By对SQL的索引性能会有很大的影响

为什么使用Group By对SQL的索引性能会有很大的影响?索引是不是能提升group by的性能?


还有一点关于SQL的疑问,为什么在使用模糊查询的时候,%name%, 如果使用了前模糊,会使得索引没有了效果,这个怎么理解,虽然模糊的知道可能是这样的,但是找不到官方对此的说法。谢谢~

天蓬老师天蓬老师2787日前673

全員に返信(1)返信します

  • 巴扎黑

    巴扎黑2017-04-17 14:53:32

    「インデックスのパフォーマンスに重大な影響を与える」とはどういう意味ですか?インデックス作成に時間がかかりすぎますか?しかし、これは gruop by とは何の関係もないようです。

    あなたの質問は、「インデックスによって group by のパフォーマンスを向上させることができるか」ということだと思います。この問題の因果関係がもっと簡単に理解できるといいのですが、これが問題である場合は、次の文章がヒントになるかもしれません。

    SQL データベースは、アルゴリズムによって 2 つのまったく異なるグループを使用します。
    最初のアルゴリズムであるハッシュ アルゴリズムは、すべての入力レコードが処理されると、入力レコードを一時ハッシュ テーブルに集約します。 2 番目のアルゴリズムである並べ替え/グループ
    アルゴリズムは、まずグループ化キーによって入力データを並べ替え、
    各グループの行が連続して続くようにします。
    >その後、データベースはそれらを集約するだけで済みます。
    どちらのアルゴリズムも中間状態を実現する必要があるため、
    パイプライン方式では実行されません。それにもかかわらず、並べ替え/グループ
    アルゴリズムは使用できます。並べ替え操作を回避するためのインデックス。これにより
    パイプライン化されたグループ化が有効になります。

    元のソース: Group By のインデックス作成

    返事
    0
  • キャンセル返事