gpt4 book ai didi

MySQL 准备好的语句过多

转载 作者:行者123 更新时间:2023-11-29 20:03:57 24 4
gpt4 key购买 nike

有没有办法查看与此错误相关的准备好的语句:

(OperationalError) failed to prepare the MySQL query: 
Can't create more than max_prepared_stmt_count statements (current value: 20000)

几个进程之一可能会导致此问题,我正在尝试找出哪一个进程可能是我能想到的最简单的方法,即查看准备好的语句的文本并将其追溯到来源。

有什么办法可以查看这些准备好的陈述是什么,以便我找到有罪的一方吗?

最佳答案

要查看当前打开了多少个准备好的语句,您可以运行:

SHOW GLOBAL STATUS LIKE 'com_%prepare%';

这会给你类似的东西:

Variable_name      | Value
-------------------+--------
Com_prepare_sql | 2
Com_stmt_prepare | 2
Com_stmt_reprepare | 0
Com_xa_prepare | 0

要读取实际的语句,您需要在通用查询日志中查看一段时间,然后从中读取。我喜欢使用表格来记录一般日志:

-- set up
TRUNCATE TABLE mysql.general_log;
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';

-- wait for some time
SET GLOBAL general_log = 'OFF';

-- read results
SELECT * FROM mysql.general_log WHERE argument LIKE 'prepare%' OR argument LIKE 'execute%';

您可以看到正在准备和执行的语句:

command_type | argument
-------------+--------------------------------------------------------
Query | prepare st from "select * from people where name = ?"
Query | execute st Using @name

关于MySQL 准备好的语句过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40411629/

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