DBA.SEに関するこの質問のとおり、私はデータベースの最適化に関してかなりの数の問題を抱えています。
改訂を削除/無効にすると、データベースの使用状況に良い影響があるのでしょうか。私たちが期待していたほど頻繁には使っていないようです。
現在のところ、各投稿に最大3つのリビジョンを含めることができるように設定しました。
これらを削除するとパフォーマンスが向上する場合、データベースからリビジョンを削除する「最新の」方法は何ですか?
前もって感謝します、
かつてAutomatticのQuantum Bug CreatorであるMichael Adams氏 は、 :と言った。
「改訂はpostsテーブルに保存されています。postクエリにどのような影響があるのかはまだわかりません。WordPress.comでもうすぐ「on」に切り替える予定です。もしあれば、どんな種類のダメージがあるかについてのより良い考え」
そしてしばらくして彼らはそれを有効にし、WordPress.com はブログの各投稿の最後の25のリビジョンを保存するようになりました 。だから、ええ、あなたは改訂に対処することができます。
ポストリビジョンの問題は、データベースのサイズが(作成されたリビジョンの数に応じて)非常に大きくなる可能性があり、それがMySQLの処理負荷を増大させることです。
それにもかかわらず、あなたはそれに対処することができます。ページとデータベースレベルのキャッシングを有効にします - W3 Total Cache はこれと、あなたのウェブサイトが単一のサーバーから提供されている場合、 WP Super Cache を試してください。そして、 ワニスキャッシュ のようなさまざまなWebアプリケーションアクセラレータがあります。何万もの投稿があるウェブサイトは、とにかくデータベースの断片化、スレーブとマスターの複製をする必要があります。
それでも、(非常に?)古い投稿の修正はリソースの無駄です、IMO。私は、公表された記事の修正を随時削除します(2〜3日ごと)。
バックアップ、バックアップ、最初にバックアップ。常に!
あなたがリビジョンを削除してデータベースを最適化し、物事を単純にするためにプラグインを使用したい場合は、 より良いリビジョンを削除する を試してください。また、 リビジョン管理 もご覧になることをお勧めします。
あるいは、以下のようにSQLを使って手動で行うこともできます。
(1A)WordPressブログ上のすべての投稿とページのリビジョンを削除します( source )。
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';
(1B)WordPressのリンク機能(Blogrollなど)を使用する場合は、前述のSQLクエリを使用しないでください。代わりにこれを使用してください( なぜですか? ):
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
LEFT JOIN wp_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id)
WHERE a.post_type = 'revision'
AND d.taxonomy != 'link_category';
(2)自動下書きを削除します。
DELETE FROM wp_posts WHERE post_status = 'auto-draft';
(3)データベーステーブルを最適化します。
OPTIMIZE TABLE `wp_commentmeta`, `wp_comments`, `wp_links`, `wp_options`, `wp_postmeta`, `wp_posts`, `wp_terms`, `wp_term_relationships`, `wp_term_taxonomy`, `wp_usermeta`, `wp_users`
注:上記のSQLクエリで、wp_
をデータベーステーブルのプレフィックスに置き換えることを忘れないでください。