WooCommerce において、High-Performance Order Storage(HPOS)を導入する前後のパフォーマンスを比較したものです。測定は同一サーバー・同一時間帯・キャッシュ無効の状態で 3 回ずつ実施し、平均値を算出しています。
項目 | 導入前 | 導入後 | 変化率 (%) |
---|---|---|---|
注文一覧ページ総ロード時間(秒) | 3.55 | 3.24 | -8.73% |
注文一覧ページ DB クエリ合計実行時間(ミリ秒) | 0.13 | 0.06 | -53.85% |
注文一覧ページ DB クエリ総数(回) | 314.00 | 254.67 | -18.89% |
注文一覧ページ重複クエリ数(回) | 43.67 | 20.00 | -54.20% |
個別注文詳細ページ総ロード時間(秒) | 3.31 | 3.35 | +1.21% |
個別注文詳細ページ DB クエリ合計実行時間(ミリ秒) | 0.14 | 0.08 | -42.86% |
個別注文詳細ページ DB クエリ総数(回) | 249.67 | 252.33 | +1.07% |
個別注文詳細ページ重複クエリ数(回) | 22.00 | 27.00 | +22.73% |
注文検索・フィルタリング速度(秒) | 4.78 | 3.64 | -23.85% |
レポート生成時間(秒) | 3.23 | 3.15 | -2.48% |
注文履歴ページ総ロード時間(秒) | 0.83 | 0.77 | -7.23% |
注文履歴ページ DB クエリ合計実行時間(ミリ秒) | 0.10 | 0.05 | -50.00% |
注文履歴ページ DB クエリ総数(回) | 140.33 | 137.67 | -1.90% |
注文履歴ページ重複クエリ数(回) | 16.00 | 16.00 | +0.00% |
結果考察
今回の測定により、 HPOS の導入によって管理画面・フロントエンドの両面で明確なパフォーマンス向上が確認されました。とくに以下の指標で大きな改善が見られます。
- 注文一覧ページの DB クエリ合計実行時間が 53.85% 減少
- 重複クエリ数(注文一覧ページ)が 54.2% 減少
- 注文検索・フィルタリング速度が 23.85% 改善
- 注文履歴ページの DB 実行時間が 50% 減少
これらは HPOS が注文データを従来のwp_posts
,wp_postmeta
構造から、専用のカスタムテーブルwc_orders
,wc_order_addresses
へ分離したことで、無駄なメタ情報 JOIN や冗長なクエリ発行が大幅に削減された結果と解釈できます。
重複クエリ数が一部で増加した
HPOS 導入後、ほとんどの指標で改善が見られましたが、個別注文詳細ページの「重複クエリ数」が約 23%増加しています。これは異常というより、以下のような構造上の理由によるものです。
データ呼び出しの重複
HPOS では注文データが従来の構造から分離されたため、一部の処理が同じ情報を別の関数経由で繰り返し取得しているケースがあります。
キャッシュの効きづらさ
HPOS の新しい読み取り構造DataStore
などでは、クエリがキャッシュされずに複数回発行されることがあります。
古いデータの影響
過去のプラグインが残した注文メタ情報を読み込む処理がある場合、それが追加のクエリを発生させている可能性もあります。
データベース構造の軽量化
以下は約 6,000 件の注文を持つサイトで HPOS 移行時に実際に測定したデータ量です。注文投稿データの構造が変更されたことで、実際のデータベースダンプサイズも約 38%削減されました。これは、 HPOS がwp_posts
およびwp_postmeta
への依存をやめ、構造化された専用テーブルに分離された効果です。
ファイル名 | サイズ | 備考 |
---|---|---|
noral_strage.sql | 64,239 KB | 削除前のフルデータ |
hpos_strage(削除後).sql | 39,905 KB | wp_posts の shop_order 削除後の状態 |
この結果は単なるパフォーマンス改善を超えて、 DB 全体の健全性や将来のスケーラビリティにも大きく寄与していることを物理的に裏付けています。
総評
- クエリ数・実行時間ともに大幅に改善された
- データ容量も減少し、構造的な効率化が明確
一部のページで重複クエリが増加したが、これは HPOS のアクセスモデル変更による副作用であり、実行時間や体感速度への悪影響はなし。
結論として、 HPOS 導入は高い効果を発揮するアップグレードであると判断されます。
この記事が役に立ったら「いいね」!