2009-03-31 9 views
2

私はこれに対する答えを知っているとはかなり確信していますが、どんなアイデアも非常に役に立つでしょう...mysql -indexesの2つのフィールドを比較しますか?

まず、これはMySQL 5.1.32-communityです。私は大きなテーブル(何百万行、サイズを縮小できない - それは縮小されたサイズです)を持ち、関連するフィールドは2つのdatetimeフィールドです。これをdate1とdate2と呼ぶことにします。私はすべての行を返すSELECTクエリを実行する必要があります(実際にはUUIDはvarchar(40)ここで、日付1> date2の。それは(2 minutes'ishを実行するために時間がかかりすぎる

SELECT id FROM table1 WHERE date1 > date2; 

)。日付は明らかに自分自身の索引何もしないでください。2つの日付の差を保存し、それを索引付けするのは短期間です。これは基本的な質問のようですが、私はちょうど何かを逃しているのだろうかといつも思っています...

+0

違いを保存すると間違って何?それが私の解決策です。 –

+0

私は2つの日付しか言及していないので、実際にはテーブルは約50個あり、それぞれは別の日付と比較する必要があります。すべての可能な日付の違いを保存するだけでは、飛ぶことはありません。 – rfusca

答えて

1

本当にたくさんのデータが返されているかどうかを確認するためにカウントを実行しましたが、それをすべて返すまでに時間がかかりますか?

クエリが簡単で、データ量が問題になるかもしれません。

+0

時差があります - 約10〜20秒後に剃ります。私はお互いに比較するいくつかの日付を持っているので、違いを保存してインデックスを作成する必要はありませんが、それは私がやる必要があると思います。 DBは一度だけ書き込みを行い、一日読み込み速度を読み取ることが重要です。 – rfusca

関連する問題