WordPress查看 SQL 的方法

经过多年的 WordPress 开发经验,小编为您整理了三种查看 WordPress 执行 SQL 查询的方法,希望其中一种适合您的需求。

方法一:使用 WordPress 插件

最简单的方法是直接安装 WordPress 插件,例如:Query Monitor

小编点评:

Query Monitor 类似于 ThinkPHP 和 Laravel 自带的调试小工具,对于偶尔查看 SQL 查询来说还不错。但是,在 WordPress 页面包含几十甚至几百行 SQL 查询的情况下,使用该工具可能会显得不够负责任。

缺点: 当开发 API 或代码出现错误时,Query Monitor 将无法显示相关信息。它虽然可用,但并不是理想的选择,有点像那种不可靠的人,总是在平时出现,但在关键时刻消失不见。而且它的菜单藏得很深,需要多次点击才能找到 SQL 页。

推荐评级: 1 颗星(满分 5 颗星)

方法二:在 WordPress 代码中添加记录并打印 SQL 查询

通过编辑 WordPress 根目录下的 wp-config.php 文件,您可以启用 SQL 查询记录。

在文件中添加以下代码:

php 复制代码
define('SAVEQUERIES', true);

然后在需要查看 SQL 查询的地方添加以下代码:

php 复制代码
<?php
global $wpdb;
var_dump($wpdb->queries);
exit;
?>

这将启用 WordPress 记录执行的每个 SQL 查询,包括它们的执行时间,并将日志保存在名为 queries 的全局数组中。

小编点评:

想象一下,每次需要查看 SQL 查询时,都要找到适当的位置添加代码,查看完毕后再删除代码。如果问题仍未解决,您又需要返回并添加更多代码。这种循环会让您感到非常疲惫。

缺点: 需要修改代码,每天都要重复多次,即使将这几行代码定义为宏以避免手动输入,精神上仍然非常耗费精力。疲劳可能导致将错误的代码提交到线上环境的风险。

推荐评级: 2 颗星(满分 5 颗星)

方法三:使用外部工具

1. 启用 MySQL 的查询日志记录功能

只需在 MySQL 的 my.cnf 文件中添加以下代码,即可让 MySQL 记录所有执行的 SQL 查询:

ini 复制代码
# 记录 SQL
general_log = 1
general_log_file = /var/log/mysql/general_sql.log

小编点评:

要使用这种方法,您需要具备对 MySQL 服务器的权限。如果多人共享一台 MySQL 开发服务器,最好不要启用此功能,因为会引起混乱。此外,由于日志包含大量信息,很难确定哪些查询是您的,因此只建议在测试服务器上使用,只在需要解决重要问题时才登录 MySQL 服务器查看它。

缺点: 需要登录到 MySQL 服务器才能查看日志,如果 MySQL 出现问题,可能会受到怀疑。此外,由于记录了所有 SQL 查询,导致查询量巨大,很难找到与您相关的查询。

推荐评级: 3 颗星(满分 5 颗星)

2. 使用 PHPStorm 插件

PHPStorm 的插件市场提供了一个名为 MySQL Proxy 插件,将代码里数据库配置更改为它代理的端口,就能将所有的 SQL 日志展示出来。是小编目前用的唯一顺手的工具,不用改代码,不需要 MySQL 数据库服务器权限,并且检索方便。

小编点评:

这个工具类似于 MyCAT,它可以代理并记录 SQL 语句。

缺点: 尽管支持搜索功能,但不支持正则表达式搜索,只支持文本搜索,很遗憾,在复杂场景下不能满足小编的需求。

推荐评级: 4 颗星(满分 5 颗星)

以上是在 WordPress 中查看执行的 SQL 查询的几种方法。您喜欢哪一种方法?或者您是否有其他更好的方法?请在评论中告诉我们,以便小编补充更多信息。

相关推荐
用户962377954482 小时前
CTF 伪协议
php
BingoGo2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack5 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理6 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
QQ5110082856 天前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php