DEV Community

dirty_pig
dirty_pig

Posted on

WordPress 查看 SQL 的方法

经過多年的WordPress開發經驗,我們的編輯為您整理了三種查看WordPress執行SQL查詢的方法,希望其中一種適合您的需求。

方法一:使用WordPress插件

最簡單的方法是直接安裝WordPress插件,例如:Query Monitor

Query Monitor

Query Monitor範例

編輯評論:

Query Monitor類似於ThinkPHP和Laravel內置的調試工具,對於偶爾查看SQL查詢來說還不錯。但是,在WordPress頁面包含數十甚至數百行SQL查詢的情況下,使用該工具可能會顯得不夠負責任。

缺點: 當開發API或代碼出現錯誤時,Query Monitor將無法顯示相關信息。它雖然可用,但並不是理想的選擇,有點像那種不可靠的人,總是在平時出現,但在關鍵時刻消失不見。而且它的菜單深藏不露,需要多次點擊才能找到。

推薦評級: 1顆星(滿分5顆星)

方法二:在WordPress代碼中添加記錄並打印SQL查詢

通過編輯WordPress根目錄下的wp-config.php文件,您可以啟用SQL查詢記錄。

在文件中添加以下代碼:

define('SAVEQUERIES', true);
Enter fullscreen mode Exit fullscreen mode

然後在需要查看SQL查詢的地方添加以下代碼:

<?php
global $wpdb;
var_dump($wpdb->queries);
exit;
?>
Enter fullscreen mode Exit fullscreen mode

這將啟用WordPress記錄執行的每個SQL查詢,包括它們的執行時間,並將日誌保存在名為queries的全局數組中。

編輯評論:

想象一下,每次需要查看SQL查詢時,都要找到適當的位置添加代碼,查看完畢後再刪除代碼。如果問題仍未解決,您需要再次返回並把剛剛刪除的代碼補回來。這種循環會讓您感到非常疲憊。

缺點: 需要修改代碼,每天都要重複多次,即使將這幾行代碼定義為宏以避免手動輸入,精神上仍然非常耗費精力。疲勞可能導致將錯誤的代碼提交到線上環境的風險。

推薦評級: 2顆星(滿分5顆星)

方法三:使用外部工具

1. 啟用MySQL的查詢日誌記錄功能

只需在MySQL的my.cnf文件中添加以下代碼,即可讓MySQL記錄所有執行的SQL查詢:

# 記錄SQL
general_log = 1
general_log_file = /var/log/mysql/general_sql.log
Enter fullscreen mode Exit fullscreen mode

編輯評論:

要使用這種方法,您需要具備對MySQL服務器的權限。如果多人共享一台MySQL開發服務器,最好不要啟用此功能,因為會引起混亂。此外,由於日誌包含大量信息,很難確定哪些查詢是您的,因此建議在測試服務器上使用,只在需要解決重要問題時才啟用。

缺點: 需要登錄到MySQL服務器才能查看日誌,如果MySQL出現問題,可能會受到懷疑。此外,由於記錄了所有SQL查詢,導致查詢量巨大,很難找到與您相關的查詢。

推薦評級: 3顆星(滿分5顆星)

2. 使用PHPStorm插件

PHPStorm的插件市場提供了一個名為MySQL Proxy的插件,將代碼中的數據庫配置更改為它代理的端口,就能將所有的SQL日誌展示出來。是編輯目前用的唯一方便的工具,不用改代碼,不需要MySQL數據庫服務器權限,並且檢索方便。

PHPStorm MySQL Proxy插件

編輯評論:

這個工具類似於MyCAT,它可以代理並記錄SQL語句。

缺點: 尽管支持搜索功能,但不支持正则表达式搜索,只支持文本搜索。

推薦評級: 4顆星(滿分5顆星)

Top comments (0)