は私のテーブルです:>演算子がある場合、どのようなインデックスが必要ですか?ここ
// mytable
+----+---------+-------------+
| id | user_id | unix_time |
+----+---------+-------------+
| 1 | 324435 | 1481199265 |
| 2 | 745645 | 1481194241 |
| 3 | 547346 | 1481291987 |
+----+---------+-------------+
そして、これは私の現在の複合インデックスです:
mytable(user_id, unix_time)
そして、これが私のクエリのいずれかです。
DELETE FROM mytable WHERE unix_time < unix_timestamp(subdate(now(), interval '1' YEAR))
私がしましたどこかで読んでください:
演算子が
>
または<
またはBETWEEN
または>=
または<=
の場合、その列は複合インデックスの最後の列である必要があります。
だから、あなたが見るように、そこに<
オペレータの両方があるとunix_time
は私の現在のインデックス(私は上記の理由別のクエリのインデックスを作成しました) ...今私は、どちらかを知りたいの最後のいずれかになります。
- 私は、クエリの利益のために
mytable(unix_time)
のような1つの以上のインデックスを作成する必要がありますかについて
それとも
- 引用文は右ではないと
上記のクエリのための他の任意のインデックスに必要?
これは、unix_timeがコンポジットインデックスに記載されている最後のフィールドであるようです。そのため、私はその質問を理解できません。エラーが出ていますか? – RiggsFolly
@RiggsFollyいいえ、エラーはありません。知りたいだけですが、別のインデックスまたは現在のインデックスを作成する必要がありますか? –
私は本当にあなた自身の質問に答えたと確信しています。それが正しいとすれば – RiggsFolly