Peeps、MySQL 5:GROUP BYフィールドの順序は重要ですか?
私のMySQLクエリには、いくつかの集計/計算フィールドがあります。私のGROUP BY句は、ユーザーがWebフォームで選択するオプションに応じて動的に生成されます。 GROUP BY句に列挙されているフィールドの順序がSUM、AVERAGEなどのような計算に影響を与えるかどうかを知りたい場合
ありがとう!それはあなたがそうでなければ、WITH ROLLUP
を使用している場合、それはいけない問題ではWILL
Peeps、MySQL 5:GROUP BYフィールドの順序は重要ですか?
私のMySQLクエリには、いくつかの集計/計算フィールドがあります。私のGROUP BY句は、ユーザーがWebフォームで選択するオプションに応じて動的に生成されます。 GROUP BY句に列挙されているフィールドの順序がSUM、AVERAGEなどのような計算に影響を与えるかどうかを知りたい場合
ありがとう!それはあなたがそうでなければ、WITH ROLLUP
を使用している場合、それはいけない問題ではWILL
なし、。
実際には、私が持っていた問題のために試したところ、インデックスの使用には大きな問題があることが判明しました。
Customers
の2つの列(都市、州)を持つ表に2次索引があり、それらが索引でこの順序で指定されているとします。
SELECT COUNT(*)FROM Customers GROUP BY都市、州 EXPLAINはインデックスを使用していることを示します。お客様GROUP BY州、市 FROM
しかし...
SELECT COUNT(*)は、インデックスを使用しないことを示していると説明しています。
これはInnoDBテーブル付きのMySQL 5.1上です。
詳細を教えてください:あなたはそれが問題だと言いますが、あなたはどのように言いませんか。 _imply_それはパフォーマンスの影響ですが、_results_は何ですか?私は彼らがそうではないと思う(@ gahooaが指摘するように、あなたに 'WITH ROLLUP'を使わない限り)。 –
2つの異なるバージョンを試したとき、何を測定しましたか? –
[mysql-optimization-guide](http://dev.mysql.com/doc/refman/5.0/ja/group-by-optimization.html)でグループ化された最適化ルールを確認してください。以下の答えの1つとして、注文はmysqlのインデックス検索速度に影響します。 – trcarden