MySQL利用主键

时间:2013-12-02 16:34:55

标签: mysql

我有一个带表的数据库。该表有许多行列:(id1,id2,user,ip,time,location)。没有列是唯一的。只有id1和id2的组合才是。

我使用以下命令创建了列id1和id2的主键:

ALTER TABLE Main ADD PRIMARY KEY (id1, id2)

现在,如果我使用此查询进行搜索:

SELECT user FROM Main WHERE id1 = 'ABFHJK' LIMIT 3

我是否利用了主键索引?

2 个答案:

答案 0 :(得分:1)

在两列上添加索引时,它们按照您指定的顺序工作。 id1和id2的主索引将使以下查询使用索引:

SELECT * FROM foo WHERE id1 = 'foo'
SELECT * FROM foo WHERE id1 = 'foo' AND id2 = 'bar'

但是,它不会单独索引id2

SELECT * FROM foo WHERE id2 = 'bar' 

答案 1 :(得分:0)

是的,如the manual中所述,在这种情况下,MySQL将使用索引,因为您是根据索引的最左边前缀进行选择。

如果您基于id2进行选择,那么MySQL将不会使用索引。