gpt4 book ai didi

autocommit=0时Mysql查询性能

转载 作者:行者123 更新时间:2023-11-29 08:34:48 24 4
gpt4 key购买 nike

我试图通过 mysql 查询(无连接)从表中删除超过 200 万条记录。该表大约有 8000 万条记录。

我使用了set autocommit=0;并且需要很长时间才能完成。如果我使用 autocommit=1 运行查询会更快吗?

最佳答案

我假设您的表是InnoDB。对于这 200 万行,它需要跟踪每次修改的撤消日志条目。这会在内存中累积并最终进入磁盘。这就是为什么需要很长时间。如果您以 block 的形式执行此操作,则可以防止它进入磁盘,并且 MySQL 可以跟踪较少的撤消日志条目,从而提高效率。

自动提交发生在查询结束时,因此不会执行任何操作。

确定 block 大小的最佳方法是通过实验。类似的东西

delete from table1 limit 1000;

然后继续加倍,直到得出最佳的每次删除行数比率。

关于autocommit=0时Mysql查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15492282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com