名前、日付、バージョン、値の4つの列を持つテーブルがあります。この4つのすべてに複合インデックスがあります。それは20Mの行を持っています:2.000の名前、名前あたり約1.000の日付、日付ごとに約10のバージョン。複数の列を連結したFast MAX、GROUP BY
私は、すべての名前に対して、最高の日付、その日付の最高のバージョン、および関連する値を与えるリストを取得しようとしています。
私が行うと
SELECT name,
MAX(date)
FROM table
GROUP BY name
は、私は良いパフォーマンスを得ると私はクエリが年齢を取る名あたりMAX(version)
を取得するために、これにテーブルを結合するときに、データベースは、
しかし複合インデックスを使用しています。上記のSELECT文とほぼ同じ時間で結果を得る方法が必要ですか?私は簡単にインデックスを使用して行うことができます。
は、あなたも、私たちにとても遅いですJOINのクエリを表示することができますか? – Flimzy
"M"は100万を意味しますか?北アメリカ人の中には、他の国の書式設定のカンマの代わりにこの期間があることを知らない人もいます。 –