首頁  >  問答  >  主體

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

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


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

天蓬老师天蓬老师2742 天前646

全部回覆(1)我來回復

  • 巴扎黑

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

    「對索引效能有很大影響」是指什麼?索引的時間太久了?但這似乎又跟gruop by沒什麼關係。

    所以我猜你的問題是不是「索引是不是能提升group by的效能」?這個問題的因果關係好想更容易理解些,那如果是這個問題的話,可能下面這段話能給你一些提示:

    SQL databases use two entirely different group by algorithms. The
    first one, the hash algorithm, aggregates the input records in a
    temporary hash table. Once hash table. 🎜>table is returned as the result. The second algorithm, the sort/group
    algorithm, first sorts the input data by the grouping key so that the
    rows of each data follow group al. >Afterwards, the database just needs to aggregate them. In general,
    both algorithms need to materialize an intermediate state, so they are
    not executed in a pipelined manner. Nevertheless the sort/gorTm an index to avoid the sort operation, thus enabling
    a pipelined group by.


    原文出處:Indexing Group By

    回覆
    0
  • 取消回覆