为了优化 SELECT 语句,我尝试在 MySQL 中使用以下 SQL 语句创建索引 UNIQUE:
ALTER TABLE credentials DROP INDEX special_credential_id, ADD UNIQUE KEY special_credential_id(special_credential_id)
我的问题是:这是一笔交易吗?这意味着如果创建唯一索引失败,旧的 special_credential_id 索引是否仍然存在?通常创建一个新索引很容易,但我们谈论的是一个包含 100 个 Mio 条目的表。
那是一笔交易。它应该按原样工作,但请按照以下两个步骤操作:
步骤1
在执行此操作之前,请测试唯一性。运行此计数查询:
如果有任何行返回(即,不是“空集”),请修复键,使它们是唯一的。否则,继续
第2步
我将作为在线 DDL 执行此操作
如果您担心这不起作用,请分两步进行