タグ別アーカイブ: インデックス

主キーの変更でGROUP BYが劇的に速くなった件を、現実的な方法で置き換えられないか考えてみた。

第5弾! Tuningathon(チューニンガソン)優勝の決め手となった主キーの変更ですが、
これによってGROUP BYが劇的に速くなった件を、

現実的な方法で置き換えられないか考えてみました。

GROUP BYで一時テーブルが作られる時にボトルネックになるのは、
「一時テーブルの作成」だけではなく「一時テーブルに載せるデータの取得」もあるということ。

MySQLにおいてのインデックスと主キーの違いは、
やったことにも書きましたが、
「実データを取りに行く必要がある(インデックス)かない(主キー)か」という部分。

(厳密にはそれだけでは無いでしょうが・・・)

・・・ということは、

結合キー→GROUP BYキー=SELECT項目→集計項目(今回は*だったので最小カラム?)

という感じで、全てが一つのインデックス内部で片付くようなインデックスを貼ったら、

実データを見に行く必要が無くなるから同じくらい速いんじゃないだろうか?

 

今度、時間があったら検証してみたいです。