在 mysql workbench 中添加索引损坏了 table?
Adding an index in mysql workbench corrupted the table?
Step-by-step:
右键单击 tbl > Table 检查器 > 单击“列”选项卡 > 右键单击 > 创建索引 >
在该部分中,我保留了以下默认值:
- 算法:默认
- 锁定:默认(允许尽可能多的并发)
出现超时错误
然后我尝试运行一个简单的“SELECT *”,但现在每次都超时。
我不认为添加索引会破坏 table 所以我没有做备份,现在有点恐慌...有什么可以做的吗反转这个?
在执行 show full processlist
时,我看到以下内容:
A header
Another header
'Waiting for table metadata lock'
'CREATE INDEX idx_all_mls_2_Centris_No
ON mcgillim_matrix
.all_mls_2
(Centris_No) COMMENT '''' ALGORITHM DEFAULT LOCK DEFAULT'
在进程列表中,可以清楚地看到您的 索引创建 正在等待 metlock,这意味着您的 table 已经被另一个查询锁定,例如 select 与 3460 秒不同 t1.broker_name 和 运行ning。
这里有两个选择。
- 让 SQL 先完成。然后索引将创建。
- 另一个,杀掉那个 Select SQL,它不会损害你的系统,以后可以 运行。
要终止查询,您可以在 information_schema.processlist 中找到 ID。然后只需 运行 下面的查询。
kill ID;
Step-by-step:
右键单击 tbl > Table 检查器 > 单击“列”选项卡 > 右键单击 > 创建索引 >
在该部分中,我保留了以下默认值:
- 算法:默认
- 锁定:默认(允许尽可能多的并发)
出现超时错误
然后我尝试运行一个简单的“SELECT *”,但现在每次都超时。
我不认为添加索引会破坏 table 所以我没有做备份,现在有点恐慌...有什么可以做的吗反转这个?
在执行 show full processlist
时,我看到以下内容:
A header | Another header |
---|---|
'Waiting for table metadata lock' | 'CREATE INDEX idx_all_mls_2_Centris_No ON mcgillim_matrix .all_mls_2 (Centris_No) COMMENT '''' ALGORITHM DEFAULT LOCK DEFAULT' |
在进程列表中,可以清楚地看到您的 索引创建 正在等待 metlock,这意味着您的 table 已经被另一个查询锁定,例如 select 与 3460 秒不同 t1.broker_name 和 运行ning。
这里有两个选择。
- 让 SQL 先完成。然后索引将创建。
- 另一个,杀掉那个 Select SQL,它不会损害你的系统,以后可以 运行。
要终止查询,您可以在 information_schema.processlist 中找到 ID。然后只需 运行 下面的查询。
kill ID;