如何使用多列索引
原始索引在 block_id
上有一个索引,但是当它已经在具有两列的唯一索引中时是否还需要?
多列索引
(a,b,c)
- 你可以搜索a、b和c
- 你可以搜索a和b
- 你可以搜索一个
- 你不能不搜索a和c
这也适用于唯一索引吗?
表格
id
block_id
account_id
name
索引来源
PRIMARY KEY (`id`)
UNIQUE KEY `block_id` (`block_id`,`account_id`)
KEY `block_id` (`block_id`),
KEY `account_id` (`account_id`),
索引选择
PRIMARY KEY (`id`)
UNIQUE KEY `block_id` (`block_id`,`account_id`)
KEY `account_id` (`account_id`),
最佳答案
据我所知,无论索引是否唯一,您上面描述的规则始终适用。您可以对您想到的查询运行解释,并观察在各种情况下何时使用索引以及何时不使用索引。
关于mysql 和多列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13321332/