mysql 唯一索引与复合索引

标签 mysql indexing unique-constraint

我在 mysql 中有一张表,如下:

CREATE TABLE `demo_tbl` (
    `id`        MEDIUMINT(8) NOT NULL,
    `uniquefld` VARCHAR(20) NULL,
    `field1`    VARCHAR(20) NULL,
    PRIMARY KEY (`id`),
    UNIQUE INDEX `ux_uniquefld` (`uniquefld` ASC),
    INDEX `ix_uniquefld_field1` (`uniquefld` ASC, `field1` ASC)
);

这里我创建了 2 个索引,一个用于 uniquefld 字段的唯一索引,另一个用于 2 个字段 uniquefldfield1 的唯一索引。

有什么方法可以创建单个索引而不是两个具有唯一性的 uniquefld 吗?

最佳答案

为什么需要索引 ix_uniquefld_field1?由于 uniquefld 是唯一的,因此对 uniquefld+field1 的任何查询都可以通过访问 ux_uniquefld 上的索引来完成。

关于mysql 唯一索引与复合索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28981961/

相关文章:

mysql - 为整数范围搜索优化 MySQL 查询

mysql - 创建具有成对唯一性的两列

mysql - 如何在 Windows 7 中使用命令行执行大型 MySQL 数据插入脚本文件?

php - php/html中多列显示单列mysql数据

PHP mysqli 选择添加字段

postgresql - 在多个连接上具有 NULL 值的多列唯​​一索引的行为

java - hibernate唯一约束注解和postgresql查询的区别

mysql - 在mysql中合并2个表

MATLAB:使用数组元胞数组索引元胞数组并返回元胞数组

python - 对象不支持索引