2012-11-10 106 views
2

如何使用索引与多列MySQL和索引与多列

原来的指数有block_id的指数,但它是necesarry时,它已经在唯一索引两列?

指标与多于一个的列

(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

你描述上面已经有我的知识规则始终认为指数是唯一与否。您可以运行关于您想要的查询的解释并观察何时使用索引以及何时在各种情况下不使用索引。