1:
PRIMARY KEY (`id`),
UNIQUE KEY `uid` (`uid`,`task_id`)
查询:
mysql> explain select * from user_task where uid = 232;
+----+-------------+-----------+------+---------------+------+---------+-------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+------+---------------+------+---------+-------+------+-------+
| 1 | SIMPLE | user_task | ref | uid | uid | 4 | const | 206 | |
+----+-------------+-----------+------+---------------+------+---------+-------+------+-------+
mysql> explain select * from user_task where task_id = 1454;
+----+-------------+-----------+------+---------------+------+---------+------+-------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+------+---------------+------+---------+------+-------+-------------+
| 1 | SIMPLE | user_task | ALL | NULL | NULL | NULL | NULL | 55917 | Using where |
+----+-------------+-----------+------+---------------+------+---------+------+-------+-------------+
1 row in set (0.00 sec)
mysql> explain select * from user_task where task_id = 1454 and uid = 232;
+----+-------------+-----------+-------+---------------+------+---------+-------------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+-------+---------------+------+---------+-------------+------+-------+
| 1 | SIMPLE | user_task | const | uid | uid | 8 | const,const | 1 | |
+----+-------------+-----------+-------+---------------+------+---------+-------------+------+-------+
1 row in set (0.00 sec)
如果(a, b, c)
查询a ; a b ; a b c 会用到索引
所以建立索引的时候 如果要查询 b c 那么可以 key(b, c)
KEY 和index 不同的是 key 可以有约束 同时会有索引