定义
复合索引的正确姿势
定义多列索引时,最重要的考虑点是如何选择列的顺序,
以便可以尽可能频繁地使用到索引。
多列索引
即使数据库自动为主键创建索引,但如果键由多个列组
成,则仍会有手动优化的空间。在这种情况下,数据库会
创建一个包含所有主键列的索引 — 所谓的多列索引(也称
为复合索引或组合索引)。请注意,多列索引的列顺序对
其实用性有很大影响,因此必须谨慎选择。
为了便于演示,我们假设需要合并一家公司。另一家公
司的员工会被添加到我们的
表中,因此该表
会 变 得 大 十 倍 。 只 有 一 个 问 题 : 两 家 公 司 中 的
并不是唯一的。我们需要通过一个额外的
标识符(例如,子公司
),来扩展主键。因此,新的主
键有两列:之前的
和
,以
重建唯一性。
因此,新的主键索引会按以下方式定义:
!"#$%!"!&!"'(
针对一个特定员工的查询必须匹配完整的主键列,也就
是说,还必须包含
列:
)*&#&*&
+
,-!"./01
$%!"!&!".12(
评论