wp_optionsテーブルの一時的なレコードをすべて削除すると、サイトが壊れますか?


14

現在、私のサイトのwp_optionsテーブルには、500k以上のとんでもない一時的なレコードがあります。これにより、テーブルが頻繁にクラッシュし、私のサイトもクラッシュします。

一時的なレコードはすべてしばらくすると期限切れになると思いました。どのプラグインが原因で何が問題なのかはまだわかりません。ただし、このようにサイトが頻繁にクラッシュすることは望ましくありません。wp_optionsテーブル内のレコード数は、数週間前に大幅に20万以上に増え、現在は50万以上になっています。

%transient_timeout%レコードのみを削除する必要があります-現在のところ200,000以上ありますか?

どんな助けでも大歓迎です。

2012年7月16日の更新

私は実際に一時的なレコードをすべて削除することでリスクを冒しました(最初に自分のサイトをバックアップしました)。それ以来、サイトのデータベースはクラッシュしていません:)

皆さま、ありがとうございました!

回答:




2

すべてのトランジェントとタイムアウトをクリアする簡単な関数を次に示します-ニーズに合わせて追加してください。

    function clear_transients()
    {

        global $wpdb;

        // delete all "namespace" transients
        $sql = "
            DELETE 
            FROM {$wpdb->options}
            WHERE option_name like '\_transient\_namespace\_%'
            OR option_name like '\_transient\_timeout\_namespace\_%'
        ";

        $wpdb->query($sql);

    }

1

トランジェントは、原則として一時的なデータです。したがって、そのようなデータの使用をコーディングした人が適切に行った場合は、問題ありません。しかし、このテーマに関する私の知識は限られており、私はそれらについてあまり経験がありません。

ほとんどの場合、最善の策はデータベースをバックアップし、不要と思われるデータを消去してから、サイトをテストすることです。ライブサイトへのトラフィックが多い場合は、ローカルインスタンスでテストして、テスト中に影響を受けないようにしてください。


1

一時的なものは一時的なオプションであり、一定の期間データベースに保持されます。つまり、目的が終了すると、それらは期限切れになります。

例:_site_transient_update_plugins一時的。アップデートが利用可能なプラグインに関する情報を保持します。この一時的なデータを削除してからダッシュボードを更新すると、データベースに再び表示されます。そのため、トランジェントを削除しても、WPはそれを再生成します。それはあなたのサイトを壊すことはありませんが、予期せぬ事態を確実に引き起こすでしょう!これらの一時的な値を削除する前に、必ずDBをバックアップしてください。


0

トランジェントは一時的なものであると考えられますが、開発者が間違ったコードを記述した場合、すべてのトランジェントを削除した後、テーマ/プラグイン/ウィジェットの設定を再保存して、トランジェントを再作成する必要があります。ほとんどの場合、これは問題ではありませんが、サイト上の一時的なものをすべて削除しても問題ありません。

トランジェントが削除されると、テーマとプラグインは、それらが依存するトランジェントを再構築する必要があります。これにより、トランジェントが削除された直後にパフォーマンスヒットが発生します。その後、データベースに蓄積された不要なトランジェントがなくなったため、サイトの実行がわずかに速くなるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.