ワードプレスのwp_optionsテーブルに_transient_ という名称の大量のデータがたまってしまっているとき、こちらを消していいのか、もしくは消し方を解説いたします。


transientとは?

ワードプレスには、プラグインやテーマが一時的なデータをその有効期限を設定して保存する機能があり、transientのデータはその処理によって追加されたデータとなります。

transientの保存のコードは下記のようになります。

set_transient( 一時保存の名称, 値, 有効期限 );

このデータはwp_optionsテーブルに下記の2点のデータセットで保存されます。

option_name _transient_一時保存の名称 option_value 値
option_name _transient_timeout_一時保存の名称 option_value 有効期限

transientが大量にデータベースにたまる場合

このtransientの値を、テーマやプラグインがwp_optionsテーブルに大量に書き込んでしまうことがあります。
この値が大量に書き込まれてしまう原因は、多くの場合バグによるものです。

transientの値はごく短い期間の一時保存として利用されるべきであり、テーマやプラグインの長期的で信頼性のある設定の保存等に利用されるべきではございませんので消してしまっても問題がない場合が多いのですが、テーマやプラグインの制作者がごく稀に利用方法を間違ってしまっている場合もございます。
この為、transienctを削除される場合は、一応データベースのバックアップをお取りいただくことをお勧めいたします。

transient値を削除する

transient値を削除するにはデータベースにSQL文というデータベースのデータ処理を実行する命令を利用して消去します。
データベース接続プログラムでデータベースに接続し、対象のデータベースを選択したうえで下記のようなSQL文を実行することでtransient値を削除することが可能です。

transient本体データの一括消去(一時保存の名称は消去したいtransient値の名称に置き換えてください)

DELETE FROM `wp_options` WHERE `option_name` LIKE '%_transient_一時保存の名称%';

transientの有効期限のデータを一括消去

DELETE FROM `wp_options` WHERE `option_name` LIKE '%_transient_timeout_一時保存の名称%';

SQL文の解説

DELETE FROM `wp_options` でwp_optionsテーブルからデータを削除せよという意味になります。

WHERE `option_name` LIKE ‘%aaaaa%’ wp_optionsテーブルからaaaaaをoption_nameの列に含むものをすべて一括で消去せよという意味になります。

WordPress ワードプレスのテーマやプラグインのカスタマイズ、修正、復旧のご依頼ご相談はWPドクターまでお気軽にお送りください