gna*_*arf 4 mysql indexing database-design primary-key
这个问题突然浮现在我脑海中......我有一张桌子,根据他们的身份证将两张桌子绑在一起.该CREATE TABLE如下所示:
CREATE TABLE `ticket_contact` (
`ticket_id` INT NOT NULL,
`entity_id` INT NOT NULL,
`notify` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`ticket_id`, `entity_id`),
KEY `ticket_id` (`ticket_id`),
KEY `entity_id` (`entity_id`)
)
Run Code Online (Sandbox Code Playgroud)
我想知道是否有必要包括最后两KEY行.它会通过以下查询提高我的速度,还是会PRIMARY KEY自动将索引中的各个列编入索引?
SELECT * FROM ticket_contact WHERE ticket_id=1;
SELECT * FROM ticket_contact WHERE entity_id=1;
Run Code Online (Sandbox Code Playgroud)
创建的索引PRIMARY KEY与任何其他(可能是复合的)UNIQUE索引相同.因此,您不需要创建单独的索引,ticket_id因为它包含在(ticket_id, entity_id)索引中的主列中.
entity_id如果您经常使用该列独立执行查询,您可能希望创建一个单独的索引ticket_id.
| 归档时间: |
|
| 查看次数: |
1508 次 |
| 最近记录: |