我在mysql中有一个表如下:
CREATE TABLE `demo_tbl` (
`id` MEDIUMINT(8) NOT NULL,
`uniquefld` VARCHAR(20) NULL,
`field1` VARCHAR(20) NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `ux_uniquefld` (`uniquefld` ASC),
INDEX `ix_uniquefld_field1` (`uniquefld` ASC, `field1` ASC)
);
这里我创建了2个索引,一个是uniquefld
字段的唯一索引,另一个是2个字段uniquefld
& field1
。
有没有办法为uniquefld
创建单个索引而不是两个具有唯一性的索引?
答案 0 :(得分:0)
为什么需要索引ix_uniquefld_field1?因为uniquefld是唯一的,所以对uniquefld + field1的任何查询都可以通过访问ux_uniquefld上的索引来做到。
答案 1 :(得分:0)
CREATE TABLE demo_tbl (
id MEDIUMINT NOT NULL PRIMARY KEY,
uniquefld VARCHAR(20) CONSTRAINT uid_uniquefld UNIQUE,
field1 VARCHAR(20),
);
CREATE INDEX idx_field1 ON demo_tbl (field1);
这将非常有效。