mysql 和多列索引

标签 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`),

最佳答案

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

关于mysql 和多列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13321332/

相关文章:

php - 错误文本 :Unknown column ' ' in field list

php - 使用php在单个输入中将多个图像上传到数据库中

postgresql - Postgres 在枚举类型上使用部分索引来实现相等条件,但不用于不等式

ruby-on-rails - 如何在 Rails 中实现复合主键

sql-server - 为什么这些 SQL Server 统计信息在设置为自动更新时会过时?

mysql - MySQL 中的唯一约束

java - 列数与行的值数不匹配。如何匹配值

c# - 如何在div中显示数据库值

mysql - 关闭所有打开的连接 - MySQL

mongodb - Mongo docker-具有indexCreate的Dockerfile