gpt4 book ai didi

mysql - 优化表或 MySQL 设置以更新/内部连接大表

转载 作者:行者123 更新时间:2023-11-29 21:03:07 25 4
gpt4 key购买 nike

这与我最近发布的一个问题有关:

Efficient way to flag a record with min field value and common fieldX value in mysql

但之前有效的其他查询上也出现类似的错误,例如:

Update TableA as T1
Inner Join TableA as T2
on T1.Field1=T2.FIeld1and T1.Field2 is not NULL
set T2.GroupFlag=T1.GroupFlag

突然之间,我得到:

ERROR 1206 (HY000): The total number of locks exceeds the lock table size

我之前已经在同一张表上运行过几次并且它有效,所以显然查询是可以的。

我知道这个问题有点模糊,但我不知道还能怎么问。 MySQL 设置中有什么我应该检查的吗?我们最近确实将数据库备份恢复到新的(此)服务器,但据我所知,唯一的区别是我们将服务器的大小增加了一倍,以便为我们提供工作空间。

更新:

我确实找到了这个:

https://major.io/2010/02/16/mysql-the-total-number-of-locks-exceeds-the-lock-table-size-2/

这基本上表明我的 innodb_buffer_pool 太小了。我查了一下,我们的新服务器虽然更大,但从未迁移过 2GB 的旧设置,我们只有 128MB。

因此,我将要求系统管理员/DevOps 尝试此操作,并报告该问题是否解决了问题(而不是仅仅删除该问题,因为也许它最终会帮助其他人)。

最佳答案

好的,问题的答案是Mysql 设置。显然,当我们迁移服务器时,DevOps/SysAdmin 确实迁移了设置,但没有重新启动服务器,因为我直接进入了查询模式。我们昨晚重新启动,一切进展顺利。

问题是 innodb_buffer_pool 默认设置为 128MB,而我们的自定义设置为 2GB。

关于mysql - 优化表或 MySQL 设置以更新/内部连接大表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37040886/

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