我使用以下命令在 phpmyadmin 中進行了查詢:-
EXPLAIN
SELECT COUNT(*)
FROM wp_options
WHERE option_name LIKE 'wc_facebook_background_product_sync_job_%'
AND ( option_value LIKE '%\"status\":\"queued\"%'
OR option_value LIKE '%\"status\":\"processing\"%' )
結果:
*** row 1 ***
table: wp_options
type: ALL
possible_keys: option_name
key: NULL
key_len: NULL
ref: NULL
rows: 590455
Extra: Using where
我需要知道的是如何洗掉所有這些行:-
當我嘗試這個時:-
delete FROM wp_options
WHERE option_name LIKE 'wc_facebook_background_product_sync_job_%'
AND ( option_value LIKE '%\"status\":\"queued\"%'
OR option_value LIKE '%\"status\":\"processing\"%' )
如果只洗掉 2066 行而不是全部 590544 行
可能是什么問題呢 !!我是否錯誤地使用了洗掉查詢!
uj5u.com熱心網友回復:
這是事情。 EXPLAIN給出 MySQL 的查詢計劃器估計它必須檢查并通過您的 WHERE 過濾器以回傳您的結果集的行數。
COUNT(*)給出實際通過過濾器的行數。這是與您的后臺同步過濾器匹配的行數。它是您將洗掉的行數。(大約如果您正在使用實時系統。)
來自 ~600K 行計數的結果EXPLAIN告訴你兩件事。
關于 MySQL:查詢必須檢查許多行。MySQL 的查詢規劃器決定進行表掃描以滿足您的查詢,這并不奇怪。但這并不重要...
關于您的 WordPress 安裝:您的
wp_options表包含大量的行。您似乎使用或以前使用過一個插件,該插件在清理選項方面非常草率。您需要處理這個問題,因為wp_optionsWP 經常使用它。一個好的起點是使用Advanced Database Cleaner或類似的插件來清除“過期的瞬變”——即
wp_options包含臨時資料的行。該插件和其他一些插件已經付費版本具有清除孤立(未使用的選項)的功能。
您可以使用此查詢來查看您的選項表。幾乎所有的選項名稱都有一個前綴來標識使用它們的插件或子系統。這向您展示了最常見的前綴。它應該可以幫助您識別創建大多數選項的子系統。
SELECT COUNT(*) num,
LEFT(option_name, 24) option_name_prefix,
MAX(option_name) option_name_example
FROM wp_options
GROUP BY LEFT(option_name, 24)
ORDER BY COUNT(*) DESC
當您猜到哪個或哪些插件有太多選項時,請訪問https://wordpress.stackexchange.com/并尋求有關清理它們的建議。
小心洗掉選項。你可以打破東西。
uj5u.com熱心網友回復:
我終于發出了這個 mysql 命令
DELETE
FROM wp_options
WHERE option_name LIKE 'wc_facebook_background_product_sync_job_%'
它洗掉了所需的行!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/366685.html
標籤:mysql WordPress的
