我将 MySQL 与 InnoDB 一起使用。
就语义而言,我不需要主键,那么主键(或者更确切地说,唯一索引)是否比非唯一索引更快查询?
我有两列适合索引但不唯一。但是,两列的组合始终是唯一的。这些列也是非空的。
将两个非唯一列设置为索引,还是在两列的组合上创建一个主键更好?
访问模式通常会修改两行或四行,其中第一列是给定值(第二列将不同,正如我提到的每个组合都是唯一的)。
例如, col1 和 col2 就像
1 1
1 2
1 3
1 5
2 1
2 2
2 3
2 5
3 1
3 2
3 3
一个示例是一次更改行 (1, 2) 和 (1, 3)
一个后续问题是关于数据类型的。col1 适合 smallint, col2 适合 tinyint。但是,我不确定在组合成单个索引时使用小于 int 类型和不同类型的性能影响是什么。该手册说,当用于主键时,多个列被连接起来。使用相同的类型smallint会更好吗?甚至使用整数?在内存访问方面,不对齐,全字访问最快?这对这里有影响吗?