質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

719閲覧

掲示板のログ保存をテキストファイルで作ってるんですが

yukinmitu

総合スコア7

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/10/22 04:21

DBが使えない為、テキストファイルにログを記述する形で掲示板を作っています
テキストファイル「log.txt」とします
これに例えば1億件のログあったとしたら、どのような不具合が起こるか
1億に限らず10憶でもいいです
そのような場合どのようなロジックがいいんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ファイルが大きすぎると

  • ファイルを開くときに大量のメモリが必要になる(ことがある)
  • ファイルを操作するのにいちいち時間がかかる(Open / Seek / Readなど)

など、いろいろとやっかいなことが起こるでしょう。

しかしDBは使えないということなので、解決策としては適度なサイズのファイルに分割するのをおすすめします。
ログがどのくらい出るかによりますが、日付や4時間ごとなどでファイルを分ければサイズの問題は解決できます。

ただ、掲示板とのことなので一度にある程度以上の書き込みがあることが予想されます。
そのような場合はDBを使った方が検索やトランザクションなどの機能も使えますし、いろいろとよいのではないかと思います。
ファイルベースの管理だとそういった基本的な機能も全部自分で書かねばなりませんし、速度やメモリ効率の問題もあります。
趣味のプログラムであれば最初はファイルに保存する形で作ってみて、実際に不具合が出そうな兆候が出てきたら適切な形に書き換えるというのもありですね。

ご参考まで。

投稿2021/10/22 04:34

fj68

総合スコア752

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukinmitu

2021/10/22 04:38

こんにちは、ありがとうございます DBは触れたことがないのですが テキストファイルとどう違うんでしょうか > ファイルを開くときに大量のメモリが必要になる(ことがある) ファイルを操作するのにいちいち時間がかかる(Open / Seek / Readなど) これはDBだと負荷にならないということでいいでしょうか? >ログがどのくらい出るかによりますが、日付や4時間ごとなどでファイルを分ければサイズの問題は解決できます。 DBではこのロジックは組む必要もないと考えていいでしょうか?
fj68

2021/10/22 05:01

趣味なのかどうかや想定している規模などどういった背景のご質問なのかわかりませんのでざっくりと(具体性に欠ける)回答を致しますと 1. どのようにファイルを管理するかにもよりますが、比較すると多くの場合DBの方が負荷が低いでしょう 2. どのDBを選ぶか、どんなデータ形式にするかによりますが、おおよそのケースで使う機能はすでに用意されていますので、自分で1からつくるよりはよいでしょう。DBのファイルを分ける必要は(DB分散しなければならないほど大量のデータを処理するのでなければ)ありません。 また、以下の質問の回答も参考になるかと思います。 PHP - 掲示板を作る場合、テキストファイルに保存するのとデータベースを使うので、どちらがパフォーマンスがいいですか? | teratail https://teratail.com/questions/10236 個人的なプロダクトであれば、最初はそこまで大容量のデータや高負荷に怯える必要はありません。 とりあえず作ってみればわかることも多いです。 それでも大量のデータを捌けるか不安だと言う場合、DBなどデータの永続化技術については有用な書籍やネット上の情報などたくさんありますので、ググって体系的に勉強してみてください。
yukinmitu

2021/10/22 05:06

非常にわかりやすい説明ありがとうございました 勉強します
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問