为什么使用Group By对SQL的索引性能会有很大的影响?索引是不是能提升group by的性能?
还有一点关于SQL的疑问,为什么在使用模糊查询的时候,%name%, 如果使用了前模糊,会使得索引没有了效果,这个怎么理解,虽然模糊的知道可能是这样的,但是找不到官方对此的说法。谢谢~
巴扎黑2017-04-17 14:53:32
「インデックスのパフォーマンスに重大な影響を与える」とはどういう意味ですか?インデックス作成に時間がかかりすぎますか?しかし、これは gruop by
とは何の関係もないようです。
あなたの質問は、「インデックスによって group by のパフォーマンスを向上させることができるか」ということだと思います。この問題の因果関係がもっと簡単に理解できるといいのですが、これが問題である場合は、次の文章がヒントになるかもしれません。
SQL データベースは、アルゴリズムによって 2 つのまったく異なるグループを使用します。
最初のアルゴリズムであるハッシュ アルゴリズムは、すべての入力レコードが処理されると、入力レコードを一時ハッシュ テーブルに集約します。 2 番目のアルゴリズムである並べ替え/グループ
アルゴリズムは、まずグループ化キーによって入力データを並べ替え、
各グループの行が連続して続くようにします。
>その後、データベースはそれらを集約するだけで済みます。
どちらのアルゴリズムも中間状態を実現する必要があるため、
パイプライン方式では実行されません。それにもかかわらず、並べ替え/グループ
アルゴリズムは使用できます。並べ替え操作を回避するためのインデックス。これにより
パイプライン化されたグループ化が有効になります。
元のソース: Group By のインデックス作成