WordPressで安全に期限切れのトランジェントを削除する方法

WordPressで安全に期限切れのトランジェントを削除する方法
WordPressで安全に期限切れのトランジェントを削除する方法

 

 
読了目安:439

Are you want to translate this page to English? Please click this link to translate via ‘©Google Translate'!

ganohr.net favicon

みなさんこんにちは! ガノー(Ganohr)です! (≧▽≦)

WordPressのパフォーマンス・チューニングのために、「トランジェント」を定期的に削除することは一応理にかなっています。

 

しかし、WordPressでは歴史的な背景があるため、

トランジェントを不用意に削除することは推奨されません。

そこでこの記事では安全にトランジェントを削除するために「期限切れのトランジェントにのみ限定して削除する方法」を紹介します。

 
更新履歴
2023/03/22 公開
 

WordPressのトランジェントとは何か? なぜトランジェントは期限切れかどうか確認した上で削除すべきなのか?

オシャレな部屋で読書をしている眼鏡の女性
WordPressのトランジェントは「簡易的に利用できる一時的な記憶領域」です。プラグインやテーマから「トランジェントAPI」を経由して利用します。

WordPressのトランジェントとは、データベースまたは外部キャッシュ上に格納される「一時的な記憶領域・及び・一時的なデータ」のことです。

WordPressは通常データベース上にトランジェントを記憶しますが、キャッシュプラグインなどがある場合、PHPのメモリ上にキャッシュが構築され、その中でトランジェントが動作していることがあります。

 

WordPressのトランジェントは通常トランジェントAPIを用いてアクセスします。

WordPressのトランジェントAPI(Transients API)とは?

サムネイルTransients API - WordPress Codex 日本語版 ... 外部サイトへアクセスwpdocs.osdn.jp

 

トランジェントAPIはテーマ開発者やプラグイン開発者に、「簡単にアクセスできる一時的な記憶領域を提供する」ものです。

この際、期限切れとする期間を秒単位で指定できるため、SNSのカウント数のキャッシュ簡易的なアクセスカウンター、場合によっては不正アクセス対策の一環として簡易的なブロック状態の記憶など幅広い範囲で利用されています。

 

ここで注意しなければならないことは「一時的な領域であるからといって、無闇矢鱈に全てのトランジェントを削除してはならない」という当たり前のことです。

あまりWordPressの仕様に詳しくない方や、WordPressの開発と縁遠いなんちゃって開発者が、インターネット上に「WordPressのトランジェントを無条件で消す」ことを安易に発信しており、私はWordPressの技術者として大変遺憾に思っています

 

そもそも論として「WordPressは前提として、期限切れのトランジェントを全て削除する機能を提供していない」ということを理解すべきです。

WordPressが期限切れのトランジェントを自動的に削除する挙動としては、あくまで同じトランジェントのキー名を参照した際に、そこで初めてそのトランジェントが期限切れかどうかを判定し、必要なら削除することになります。

WordPress自体が「トランジェントが無闇矢鱈に削除されることを想定していない」ことなど、火を見るより明らかでしょう。

 

トランジェントを削除する場合、必ず「トランジェントに設定された期限を確認した上で行うべき」なのです。

なぜWordPressの期限切れのトランジェントを削除した方がいいの? 本当に必要なの?

外で人差し指を上に出して要点を伝えようとしている女性
実はWordPressにおいて期限切れのトランジェントは、絶対に削除が必要というわけではありません。1日に一度だけ自動的に削除するような運用で十分です。

まず、基本的には「トランジェントは期限が切れていても、削除する必要が絶対にあるわけではない」という点を踏まえておいてください。

もしも本当に絶対削除すべきなのであれば、WordPressが正式に機能として実装されるはずです。

 

WordPressは迅速なレスポンスを実現するために、効果の薄い施策・機能の実装は必要十分なところで止めています。

期限切れのトランジェントを削除することは、基本的にはあまりサイトのパフォーマンスを向上させません。

 

しかし、期限切れのトランジェントが大量にある場合はそんなことは言ってられません。

あくまで当方の経験則にもとづきますが、wp_options(※)テーブルが5万~10万レコードを超える辺りから、如実に速度低下が見られるようになります。

※ WordPressのトランジェントはwp_optionsに格納されます。

当方は有償にてWordPressのサイトのパフォーマンス・チューニングを行っていますが、実際に大量のトランジェントが確認されたサイトは無数にあります。

ただし、実際のところそもそもそうしたサイトはキャッシュ機構自体が構築されていないため、速度低下の要因の1~2%程度でしかありません。

 

とはいえ実際に期限切れのトランジェントを削除することは、効果は薄いものの効果はあります。

したがって「パフォーマンス・チューニングの為に、期限切れのトランジェントを削除することは一定の意味はあるが、9割9部それ以外に原因がある」という理解をしておくと良いでしょう。

 

こうした理由により、「期限切れのトランジェントは、1日に一度自動的に削除する」といった運用で十分となります。

WordPressのトランジェントを期限切れかどうか確認した上で削除する方法

WordPressの機能としては存在しないため、SQLを発行して行うか、専用のプラグインを利用します。

当方は以下のプラグインを導入して対応しています。

 

このプラグインは無用な機能が無いため、コードレビューが行いやすい明確な利点があります。

Delete Expired Transients
サムネイルDelete Expired Transientsdelete old, expired transients from WordPress wp_options table ... 外部サイトへアクセスja.wordpress.org

 

使い方はシンプルで①「ツール」をクリックし、②「Delete Transient」をクリックし、③「expired transients」(期限切れのトランジェント)を選択した状態で④「delete」(削除)を押すだけです。

Delete Expired Transientsの使い方解説画像
Delete Expired Transientsの使い方は簡単。無用な機能がないので扱いやすい。

WordPressのトランジェントをすべて消す

サイトを閉鎖する場合や、何らかの緊急事態が起こっており、サイト修復のためにやむを得ない場合は先程の「all transients — use with caution!」(全てのトランジェント―気をつけて利用すること!)を選択した状態で「delete」を押します。

 

基本的に、この機能を使用する必要はないでしょう。もしも使用する必要があると思われる場合、一度、私のような専門家に相談することをおすすめします。

サムネイルガノー (Ganohr) | フリーランスのその他プログラマ・エンジニア個人ライター歴5年、SE歴10年超の専門知識を生かし、南国の奄美から挑戦中! WordPress運営歴6年超、プラグイン開発者としても活動。様々な不具合修正/機能追加承ります! C#やSQL、UMLなどは専門の資格を保有し、基本情報技術者なども取得。 COBOLからC#、Java、PHPま ... 外部サイトへアクセスwww.lancers.jp

定期的に期限切れのトランジェントをクリーンアップする

今回紹介しているプラグインは、マルチサイトであれば1時間おきに5サイトずつ(1日最大120のサイト)、通常のスタンドアロンのサイトであれば24時間おきに、自動的に期限切れのトランジェントをクリーンアップします。

 

特別な考慮が不要のため、一度導入してしまえば後は放置しておいて問題ありません。

最後に

パフォーマンス・チューニングにおいて、トランジェントを削除することは意味はあるものの、目立った効果は基本的に感じることは少ないでしょう。

 

参考になったら、SNSへシェアしたり、ブックマークしてくだされば励みになります。

 

以上、ガノー(Ganohr)でした!

WordPressの不具合対応/カスタマイズ¥15,000~

PC歴25年超、SE歴10年超、WordPress運営歴7年超、WordPressエンジニア歴5年超のスキルとノウハウを提供します

当サイト管理人の「ガノー」(Ganohr)は、日本最大手且つ東証一部上場企業が運営するクラウドソーシングサイト『Lancers』にて、認定ランサーとして活動しています。


※ 認定ランサーとはLancersにより様々な能力 ( 高い仕事遂行率・高い顧客満足度・多くの実績、など ) を評価したプロフェッショナルを認定する制度です。

 

WordPressカテゴリの最新記事