テーマ、知りたいこと
現在掲示板の回答画面を作成しているのですが、回答・返信と階層に制限をそれぞれ設けるべきか悩んでおります。
懸念している点
① PHPのメモリ制限
1リクエストで大量のコメントを読み込むと、
memory_limit に達する可能性があると考えています。
② N+1問題によるDB負荷
隣接リスト方式で、親→子→孫と再帰的に取得する実装の場合、
コメント数に応じてSQLの発行回数が増加し、
結果的にN+1問題が発生する可能性があると考えています。
特に同時アクセスが増えた場合、
DBへの負荷が高くなる懸念があります。
③ ブラウザの描画負荷(特にスマホ)
コメント数や階層が増えると、
入れ子構造のDOMが増加し、DOMツリーが肥大化することで
スクロールや描画が重くなる可能性があります。
特にスマートフォン環境では、
大量の要素を一度に描画するとパフォーマンス低下や
カクつきが発生する懸念があります。
主観
①と②は1回の表示ですべてを読み込まずに「返信を表示」ボタンで段階的に読み込む形式であれば、サーバーの負荷が軽減されるため、対策は可能だと思うのですが、③のDOMの肥大化は対処法として、画面に表示されていない要素をHTMLから排除し、DOMツリーを浅く保つことになるため、防ぐことは難しそうです。
法的な証拠保全の観点の心配もありましたが、「どの投稿(ID)への返信か」をDBに数値で持っておけば、証拠として十分ではないかと考えております。
削除済み投稿のログ保持加害者が投稿を消しても、管理者側には「内容・IP・日時」が一定期間残るように設計する予定です。