Skip to content

[コア] 大量ページ時のパフォーマンス改善(ページdepth永続化)#2318

Merged
gakigaki merged 3 commits intomasterfrom
feat/depth-column-persist
Dec 23, 2025
Merged

[コア] 大量ページ時のパフォーマンス改善(ページdepth永続化)#2318
gakigaki merged 3 commits intomasterfrom
feat/depth-column-persist

Conversation

@gakigaki
Copy link
Contributor

@gakigaki gakigaki commented Dec 16, 2025

概要

  • pagesテーブルにdepthカラムを追加し、左右値から初期計算するマイグレーションを追加しました。
  • Pageモデルに深さ再計算のユーティリティ(recalcDepthWithDescendants/recalcAllDepths)を追加し、ページ作成・階層移動後にdepthを更新するようにしました。
  • withDepth()依存を排除し、読み取り時はdepthカラムを参照するように変更しました(SiteManageのフレーム出力含む)。
  • 移行完了後に全ページのdepthを再計算する処理を追加しました。
  • 全件再計算コマンド php artisan pages:recalc-depth を追加しました。
  • 深さ再計算のユニットテストを追加しました。

背景・目的

  • ページ数が多い場合、withDepth()が相関サブクエリで負荷となりレスポンス劣化していました。
  • depthを永続化して更新時に再計算することで、読み取り時のコストを削減し、大規模ページでもパフォーマンスを向上させるためです。

特記事項

  • 既存データはマイグレーション実行でdepthが初期計算されます。
  • 階層整合性が疑わしい場合は php artisan pages:recalc-depth を実行してください。

テスト

  • docker compose exec webapp php artisan test --filter=PageDepthTest

レビュー完了希望日

関連Pull requests/Issues

参考

DB変更の有無

有り

チェックリスト

@gakigaki gakigaki added enhancement 機能強化 core Connect-CMSコア関係 labels Dec 16, 2025
@gakigaki gakigaki merged commit 9a88b7d into master Dec 23, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Connect-CMSコア関係 enhancement 機能強化

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant