如何知道客户端是否正在使用预准备语句?

时间:2013-06-25 01:44:13

标签: mysql

当我使用MySQLdboursql等客户端库时,我怎么知道它是否使用预处理语句?

无论如何,我能说出服务器端的区别吗?也许通过查看某种日志?

编辑:我正在使用MySQL5.1

2 个答案:

答案 0 :(得分:2)

假设客户端具有使用存储过程的权限,则必须使用某种形式的日志记录。

如果您拥有对客户端的控制权,则可以让客户端记录所有请求并检查该日志。

如果您无法控制客户端,则可以在数据库服务器上打开详细日志记录,并检查SQL语句与客户端ID。

如果您没有对数据库进行这种控制,您可以通过修改它们来从存储过程中“记录”,也可以将用户发出请求和时间戳等插入到日志表中。

这些选项大致按优先顺序列出。


阅读this link了解启用常规查询记录所涉及的内容。来自该链接的précis:

  

通用查询日志是mysqld正在做什么的一般记录。客户端连接或断开连接时,服务器会将信息写入此日志,会记录从客户端收到的每个SQL语句

从MySQL5.1开始,您可以在运行时启用general_logSET GLOBAL general_log = 1

使用SELECT @@general_log_file找到日志文件。

答案 1 :(得分:1)

您需要启用MySQL general_log表/功能。您可以在使用它的客户端看到PREPARE语句。