web-dev-qa-db-ja.com

リビジョンを削除するとデータベースのパフォーマンスに良い影響がありますか?

DBA.SEに関するこの質問のとおり、私はデータベースの最適化に関してかなりの数の問題を抱えています。

改訂を削除/無効にすると、データベースの使用状況に良い影響があるのでしょうか。私たちが期待していたほど頻繁には使っていないようです。

現在のところ、各投稿に最大3つのリビジョンを含めることができるように設定しました。

これらを削除するとパフォーマンスが向上する場合、データベースからリビジョンを削除する「最新の」方法は何ですか?

前もって感謝します、

3
dunc

かつて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_をデータベーステーブルのプレフィックスに置き換えることを忘れないでください。

7
its_me