mysql和索引有多个列

时间:2012-11-10 10:43:48

标签: mysql database-indexes

如何使用包含多列的索引

原始索引的索引位于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`),

1 个答案:

答案 0 :(得分:1)

根据我的知识,您在上面描述的规则始终保持索引是否唯一。您可以对您想到的查询运行解释,并观察何时使用索引以及何时在各种情况下不使用索引。