2026年7月29日

2026年7月29日

WordPressのwp_termsとwp_taxonomyを最適化する方法

はじめに

ワードプレスは世界中の多くのウェブサイトで利用されているオープンソースのコンテンツ管理システムです。その背後にはMySQLデータベースがあり、様々なテーブルがWordPressサイトを支えています。特にwp_termsとwp_taxonomyテーブルはカテゴリー、タグ、カスタムタクソノミーといった分類体系を管理しています。これらのテーブルはサイトの規模や使用頻度に応じて大きくなり、パフォーマンスに影響を与える可能性があります。

この記事では、wp_termsとwp_taxonomyテーブルの最適化方法について解説します。具体的には、不要なデータを削除し、インデックスを改善することでパフォーマンス向上を図ります。

症状・背景

このテーマが必要になる主な場面:

  • サイトが重いと感じる
  • フォーラムやレビューサイトなどで大量のタグやカテゴリーを使用する場合
  • 定期的なデータベースメンテナンスを実施している場合
  • カスタムポストタイプやカスタムタクソノミーの管理が必要な場合

手順・設定方法

ステップ1: データベースバックアップを行う

まず、データベースの完全なバックアップを作成します。データの破損や削除などの問題が発生した場合に備えてください。

# バックアップファイル名を指定してmysqldumpコマンドを使用
mysqldump -u [ユーザー名] -p [データベース名] > wp_db_backup.sql

# パスワード入力後、バックアップが生成されます。

ステップ2: wp_termsとwp_taxonomyテーブルのインデックスを確認・改善する

次に、wp_termsとwp_taxonomyテーブルにおける現在のインデックス構造をチェックし、必要であれば改良します。

# wp_termsテーブルの現在のインデックスを表示
mysql -u [ユーザー名] -p [データベース名] -e "SHOW INDEX FROM wp_terms;"

# wp_taxonomyテーブルの現在のインデックスを表示
mysql -u [ユーザー名] -p [データベース名] -e "SHOW INDEX FROM wp_taxonomy;"

ステップ3: 不要なエントリを削除する

次に、wp_termsとwp_taxonomyテーブルから不要なエントリ(例えば、使用されていないタグやカテゴリー)を削除します。ただし、この操作は慎重に行う必要があります。

# wp_termsテーブルから使用されていないエントリを探すSQLクエリの例
mysql -u [ユーザー名] -p [データベース名] -e "SELECT * FROM wp_terms WHERE term_id NOT IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);"

# 不要なエントリを削除する(注意: 実際の運用では手動で確認が必要)
DELETE FROM wp_terms WHERE term_id NOT IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

ステップ4: データベースクレンジングと最適化

最後に、MySQLデータベース自体を整理し、パフォーマンスを向上させるために最適化を行います。

# MySQLのテーブルをフラッシュしてキャッシュをクリア
mysql -u [ユーザー名] -p [データベース名] -e "FLUSH TABLES;"

# wp_termsとwp_taxonomyテーブルの最適化
OPTIMIZE TABLE wp_terms;
OPTIMIZE TABLE wp_taxonomy;

注意事項

  • データベースバックアップは必ず行うことを忘れないでください。
  • SQLクエリを実行する前に、その内容を十分に理解し、予想外の結果が発生しないように確認してください。
  • カスタムタクソノミーやカスタムポストタイプを使用している場合は、それらにも影響がないことを確認してください。
  • データベースの最適化はパフォーマンス向上に役立ちますが、頻繁に行う必要はありません。定期的なメンテナンスが推奨されます。

まとめ

1. バックアップの重要性: データベースを変更する前に必ずバックアップを作成すること。

2. インデックスの最適化: インデックスはクエリのパフォーマンスに大きく影響します。定期的なチェックと改善が必要です。

3. 不要なデータの削除: 未使用のタグやカテゴリーを定期的に確認し、削除することでテーブルサイズを減らすことができます。

4. MySQLの最適化: データベース自体も定期的に最適化することでパフォーマンス向上が期待できます。

5. カスタムタクソノミーへの注意: カスタムタクソノミーやポストタイプを使用している場合、それらにも影響がないことを確認する必要があります。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ