2009-07-08 19 views
3

Peeps、MySQL 5:GROUP BYフィールドの順序は重要ですか?

私のMySQLクエリには、いくつかの集計/計算フィールドがあります。私のGROUP BY句は、ユーザーがWebフォームで選択するオプションに応じて動的に生成されます。 GROUP BY句に列挙されているフィールドの順序がSUM、AVERAGEなどのような計算に影響を与えるかどうかを知りたい場合

ありがとう!それはあなたがそうでなければ、WITH ROLLUPを使用している場合、それはいけない問題ではWILL

+0

2つの異なるバージョンを試したとき、何を測定しましたか? –

+0

[mysql-optimization-guide](http://dev.mysql.com/doc/refman/5.0/ja/group-by-optimization.html)でグループ化された最適化ルールを確認してください。以下の答えの1つとして、注文はmysqlのインデックス検索速度に影響します。 – trcarden

答えて

5

を問題ではないはず

+0

これがなぜインデックス使用のために重要なのかは以下を参照してください。 – Artem

4

実際には、私が持っていた問題のために試したところ、インデックスの使用には大きな問題があることが判明しました。

Customersの2つの列(都市、州)を持つ表に2次索引があり、それらが索引でこの順序で指定されているとします。

SELECT COUNT(*)FROM Customers GROUP BY都市、州 EXPLAINはインデックスを使用していることを示します。お客様GROUP BY州、市 FROM

しかし...

SELECT COUNT(*)は、インデックスを使用しないことを示していると説明しています。

これはInnoDBテーブル付きのMySQL 5.1上です。

+0

詳細を教えてください:あなたはそれが問題だと言いますが、あなたはどのように言いませんか。 _imply_それはパフォーマンスの影響ですが、_results_は何ですか?私は彼らがそうではないと思う(@ gahooaが指摘するように、あなたに 'WITH ROLLUP'を使わない限り)。 –

関連する問題