- ベストアンサー
ファイル構成に関する質問
- データベースのようなファイルを複数に分割するメリット・デメリットなどあるのでしょうか?
- ファイル構成に関する質問について解説します。
- データベースのような構造の場合、レコードごとの関連は低い用件では、レコードごとにファイルを作成しても良いのではないか?逆に分散することにより全体が壊れる可能性の低下などのメリットがあるのではないかと考えています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
デメリット 1.ファイル数の制限 2.read処理の低下 3.データ管理の不便さ メリット 1.ファイル破損を避ける この辺でしょうか。 普通、汎用的な掲示板の場合、メリットであるファイル破損を避けるために、最大行数を設けていると思います。 1000行で削除するとかってアレですね。 データ量が多くなればなるほど破損しやすくなるかと思うので、ログを消したくない場合は何らかのファイル分散処理が必要になると思います。 ただし、多くの人はレンタルサーバーを使用すると思いますので、汎用的な物として考えた場合必ず容量制限の問題が発生します。 また、サーバー環境によってはファイル数の制限にかかる場合もあります。 それを考えると、ファイルを分散化してもログの自動削除という処理が必要になると思います。 削除を行うには古いデータから消す手法になると思いますので、各ファイルの時間情報やシーケンス情報などから削除する順番を知っておく必要があると思います。 多くのファイルの順序を取得するのは結構なコストになると思いますので、その辺もデメリットになるかも知れません。 また、検索処理などでreadが多く発生する場合、iowaitが高くなります。 人気が高いサイトになると、ファイルだけに頼ってしまうとどうしても限界があり、メモリに頼らざるを得なくなります。 掲示板の構成に合わせたファイル分散化を行う スレッド単位でファイルを分ける 日付単位でファイルを分ける カテゴリ単位でファイルを分ける ファイル数が膨大になるような場合に別途処理を設ける 検索や一覧表示用の処理 更新順序の取得 こんな仕様であればファイルの分散化は効率が良いのかなと思います。 そのため、各掲示板ごとに仕様が決まっていて、いくつかの手法が取られているんじゃないでしょうか。 1.1つのファイルで扱う 2.削除時は最後の行を削除する これは単純で明快であると思うのです。
お礼
回答ありがとうございます。 やはり、手法の一つとしてはOSのファイル管理機能をデータベースのように使うというのも一つの方法として良いみたいですね。 問題は、ファイル容量と、参照の兼ね合いですね。 いろいろ実験をして確認してみます。