gpt4 book ai didi

MySQL 有时会错误地为 count(*) 返回 0

转载 作者:行者123 更新时间:2023-11-29 04:06:45 25 4
gpt4 key购买 nike

我维护着一个对论坛线程进行分页的论坛。为了确定线程有多少页,我执行查询

SELECT COUNT(*) AS `numrows`
FROM `forum_posts`
WHERE `thread_id` = '3004'
AND `deleted` = 0;

然后得到结果,除以每页的帖子数,然后四舍五入。上面的查询偶尔会无缘无故地返回 0 结果,这会导致分页中断。通常,问题会在几分钟内“神奇地”自行修复,所以到目前为止,即使诊断它也是一段有趣的旅程。或者更确切地说,它可以持续几个小时,但在我登录以尝试查看发生了什么后的几分钟内似乎神奇地自行修复了(尽管这可能是我的想象)。

当问题出现时,所有 此类查询都会为 numrows 返回 0,而当它突然自行解决时,上述查询又开始返回正确的值。

可能导致此问题的原因是什么?

最佳答案

我们也遇到过这个问题。它也发生在 mysql 客户端(不是通过代码)。好像是mysql的bug。是索引合并交集造成的

您可以在每个 session 中将其关闭并尝试SET SESSION optimizer_switch="index_merge_intersection=off";

或者在你的my.cnf中全局设置

[mysqld]optimizer_switch=index_merge_intersection=off

在此处提交错误报告

http://bugs.mysql.com/bug.php?id=81031

关于MySQL 有时会错误地为 count(*) 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32973835/

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