私はこのようなテーブルを持っています
tbl_reg_process
- id, bigint(20)
- x1, varchar(255) nullable
- x2, varchar(255) nullable
- x3, varchar(255) nullable
- date1, datetime, nullable
これは説明クエリです:
EXPLAIN SELECT x1,COUNT(x1) FROM tbl_reg_process WHERE date1 >= '2013-04-01 00:00:00' AND x3='U' GROUP BY x1
これが結果(INDEX NOT USED)で、応答が非常に遅くなりました
+----+-------------+-----------------+------+---------------+--------+---------+-------+--------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------------+------+---------------+--------+---------+-------+--------+----------------------------------------------+
| 1 | SIMPLE | tbl_reg_process | ref | x3,date1 | status | 768 | const | 585521 | Using where; Using temporary; Using filesort |
+----+-------------+-----------------+------+---------------+--------+---------+-------+--------+----------------------------------------------+
問題は、date1、x3、および x1 を含む where 条件を使用できるように、どのインデックスを作成する必要があるかということです。