1

タイムスタンプ フィールドを持つ mysql テーブルがあります。
このテーブルのほとんどのクエリはwhere someIntegerIield=? and theTimestampField is null.

インデックスの一部としてタイムスタンプ フィールドを使用する必要がありますか?
または、タイムスタンプ フィールドが null の場合は 0 に設定され、それ以外の場合は 1 に設定される別のフィールドを作成して維持する必要がありますか?

他の代替案も大歓迎です。

4

1 に答える 1

0

はい、「タイムスタンプ 1 とタイムスタンプ 2 の間の時間」にインデックスを使用できます。MySQL / InnoDB のデフォルトのインデックス タイプは BTREE であり、比較 (<、>、間) とプレフィックスで機能します。はい、MySQL はインデックス条件で IS NULL/ IS NOT NULL を使用します。http://dev.mysql.com/doc/refman/5.5/en//is-null-optimization.html一部のテーブル タイプ (InnoDB を含む) の場合。

以前のバージョンの MySQL を使用している場合は、いつでも "EXPLAIN" を試すことができます。クエリにインデックスを使用するかどうか (および使用するインデックス) を教えてくれます。

于 2013-01-14T15:13:23.313 に答える