当我们需要更改表的主键以通过索引更好地为我们的查询提供服务时,我认为以下是标准编码“模式”:
ALTER TABLE employees
ADD UNIQUE INDEX tmp (employee_id, subsidiary_id);
ALTER TABLE employees
DROP PRIMARY KEY;
ALTER TABLE employees
ADD PRIMARY KEY (subsidiary_id, employee_id);
我的理解是,tmp
索引是在删除主键之前创建的,以便于使用当前主键进行查询而不损失性能。
但我不明白这一点。
当我们执行一个ALTER TABLE
(我指的ALTER TABLE
是删除主键)表将被锁定直到操作完成对吗?
所以查询无论如何都无法运行。那么为什么tmp
首先要创建呢?