当我使用MySQLdb
or之类的客户端库时oursql
,我怎么知道它是否使用准备好的语句?
无论如何我可以分辨出服务器端的区别吗?也许通过查看某种日志?
编辑:我正在使用 MySQL5.1
当我使用MySQLdb
or之类的客户端库时oursql
,我怎么知道它是否使用准备好的语句?
无论如何我可以分辨出服务器端的区别吗?也许通过查看某种日志?
编辑:我正在使用 MySQL5.1
假设客户端有权使用存储过程,您必须使用某种形式的日志记录。
如果您可以控制客户端,则可以让客户端记录所有请求并检查该日志。
如果您无法控制客户端,则可以在数据库服务器上打开详细日志记录并检查 SQL 语句与客户端 ID。
如果您没有对数据库的这种控制,您可以通过修改存储过程中的“日志”来将它们也插入到日志表中,用户发出请求和时间戳等。
这些选项大致按优先顺序呈现。
阅读此链接以了解打开常规查询日志记录所涉及的内容。该链接的概要:
一般查询日志是mysqld在做什么的一般记录。当客户端连接或断开连接时,服务器将信息写入此日志,并记录从客户端接收到的每个 SQL 语句。
从 MySQL5.1 开始,您可以general_log
在运行时启用:SET GLOBAL general_log = 1
并用于SELECT @@general_log_file
定位日志文件。
您需要启用 MySQL general_log 表/功能。您会在其中看到正在使用它的客户端的 PREPARE 语句。