请教复合索引的问题

SELECT id FROM keywords WHERE u_id='40' AND site_id='1' AND status=1;
上面的语句中增加复合索引的话,还需要把id也加上吗?id是主键

ALTER TABLE keywords ADD INDEX iuss ( id,u_id, site_id, status)
ALTER TABLE keywords ADD INDEX uss ( u_id, site_id, status)
上面这两个哪个对?

另外对于顺序有要求吗?比如site_id跟status顺序换一下,会不会不走索引了呢

最佳答案

第二个对的。复合索引主要是在不同的查询场景下,查询条件会有重叠的情况使用。从而达到一个索引覆盖到多个查询场景