首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在表上运行更改时,使用ALGORITHM=INPLACE、LOCK=NONE可能带来什么不利或后果?

问在表上运行更改时,使用ALGORITHM=INPLACE、LOCK=NONE可能带来什么不利或后果?
EN

Database Administration用户
提问于 2022-05-25 01:16:17
回答 1查看 915关注 0票数 1

一段时间以来,我一直试图在网上找到答案,但没有运气。

在MySQL8.0Innodb中使用ALGORITHM=INPLACE, LOCK=NONE运行alter (例如添加索引、添加列、删除索引、删除列)可能有什么缺点或后果?

我认为,至少在某些情况下,您不希望使用LOCK=NONE。

如果在运行alter以添加索引时将新行添加到表中,那么某些索引是否可能不会被创建?我只是在想,我是否应该考虑将这些用于我运行的所有更改。

谢谢

EN

回答 1

Database Administration用户

发布于 2022-05-25 07:45:35

INPLACE算法的一些缺点是:

  1. 长期运行的联机DDL操作可能导致从站复制滞后。联机DDL操作必须在主程序上完成运行,然后才能在从服务器上运行。此外,在主服务器上并发处理的DML仅在完成对从服务器的DDL操作之后才在从服务器上处理。
  2. 当锁定表以应用来自日志的数据时,较大的诺姆b_在线_更改_日志_最大值_大小大小将延长DDL操作结束时的时间。
  3. 在高并发服务器上,大型表的IO使用率可能会很高(在资源消耗方面比较激进)。

检查在线DDL限制列表

在大型表上运行DDL 操作之前,检查操作是快的还是慢的,如下所示:

  1. 克隆表格结构。
  2. 用少量数据填充克隆的表。
  3. 在克隆表上运行DDL操作。
  4. 检查“受影响的行”值是否为零。非零值意味着操作复制表数据,这可能需要特殊的计划。例如,您可以在计划停机期间执行DDL操作,或在每个副本服务器上一次执行一次。
票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/312541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档