web-dev-qa-db-ja.com

ウェブサイトで一時的なものを削除する

私たちはウェブサイト(WordPressとWoocommerce)のエラーログで非常に多くのエラーが発生しているし、それは次のエラーメッセージが表示されます

WordPressデータベースエラーロックを取得しようとしたときにデッドロックが見つかりました。クエリのトランザクションを再起動してみてください。DELETE FROM wp_options WHERE option_name LIKE '_transient_wpseo_sitemap_cache_shop_order_%' OR option_name LIKE '_transient_timeout_wpseo_sitemap_cache_shop_order_%' 'require(' wp- blog-header.php/wp '/ require' w)テンプレートloader.php ')、が挙げられる(' /テーマ/ THEMENAME /鋳型/テンプレートname.php ')、WC_Abstract_Order-> update_statusを、wp_update_post、wp_insert_post、clean_post_cache、clean_object_term_cache、do_action(' clean_object_term_cache ')、call_user_func_array、wpseo_invalidate_sitemap_cache_terms、 wpseo_invalidate_sitemap_cache、WPSEO_Utils :: clear_sitemap_cache

しかし、なぜそれが起こっているのか私にはわかりません。私は特別な操作のためにこのテンプレートを作成します、そしてそのテンプレートで私はget_header()get_footer()などを使いませんでした

そして_transient_wpseo_sitemap_cache_shop_order_%はあなたのプラグインによって作られていますが、私はすでにそのページの指示に従っていません

enter image description here

誰がこれの理由が何か教えてもらえますか?

また、期限切れトランジェントの削除プラグインをインストールすると、非常に多数の期限切れトランジェントが表示されます。この期限切れトランジェントを削除するとどうなるかわかりますか。

私がget_header(), get_footer()を使わなかったとしても、なぜ一時的なものが私の新しく作成されたページとテンプレートに入ってくるのですか?

選択したページでこの未来を無効にする方法

1
Manu

一時的なものは、期限切れになったときに必ず削除されるわけではなく、それが原因で予測不可能になり、時には苦痛になります。トランジェントを扱うときはいつでも、投稿を公開するときにトランジェントを削除したり、トランジェントが投稿に関連するデータを保持することを目的としたときに更新したりするなど、何らかの機能が発生したときにトランジェントを削除できます。

新しく作成されたものでさえなく、古い期限切れのトランジェントを削除しても問題はありません。必要または必要な一時的なものは、次のページの読み込み時に再作成されます。トランジェントは作成するのが少し高価なので、一度にすべてのトランジェントを削除して再作成すると、1ページの読み込みが遅くなる可能性があります。その後、すべて正常に機能するはずです。

編集

... 1ページまたは選択したページのすべての一時を無効にするオプションはありますか

いいえ、ありません。そうするのは自殺でしょう。設定されているトランジェントのほとんどは、デフォルトでWordPressによって行われます。 WordPressはこれらのトランジェントを使って非常に高価な操作の結果を保存します。このようにして、これらの高価な操作(はあなたのページロード時間を遅くします)はすべてのページロードで実行する必要はありませんが、数日に1回だけです。リソースを大幅に節約します。

私がすでにコメントで述べたように、あなたはおそらくあなたのプラグインによって設定されたトランジェントに関する問題を抱えています、その場合あなたは関連するデバッグ情報でプラグイン作者に連絡するべきです

1
Pieter Goosen

これは一般的な意見ではありませんが、オブジェクトキャッシングがない場合はIMOの過渡現象を避けるべきです。

ここで起こっていること(そしてそれは大抵推測です)は、あなたが同時に2つのオプションテーブルに書き込もうとしているということです。一方は挿入、もう一方は削除され、どちらも同じリソースを必要としていますが、一方が必要とするすべてのリソースを制御できず、その逆もありません。

できることは、オブジェクトキャッシュを使用してトランジェントがDBに保存されないようにすることです。または、高速化することでこのような状況が発生しないようにDBに力を与えることを試みることができます。

0
Mark Kaplun