5

チャット メッセージをデータベースに保存することについてどう思いますか?

他のもの (ファイルや連絡先など) をそれらにバインドできるようにする必要があり、データベースを使用することが今のところ最善の方法です。

同じ質問がファイルにも当てはまります。ファイルはチャット メッセージにバインドできるため、データベースにも保存する必要があります..

何千ものメッセージとファイルがあるので、パフォーマンスの低下とデータベースのサイズが気になります。

MySQL/Doctrine で PHP を使用していることを考えるとどう思いますか?

4

2 に答える 2

4

データベースが適切に構成されていれば、テキスト情報 (名前、メッセージ履歴など) をデータベースに保存しても問題ないと思います。私は大規模な Web サイト (1 日に数キロの訪問者) や、ユーザーに関する情報 (トラフィック統計を含む) を数百ギガバイトにまで成長したデータベースに保存する通信会社で働いており、アプリケーションは正常に動作していました。

しかし、画像やファイルのようなバイナリ情報に関しては、それらをファイル システムに保存し、それらのパスのみをデータベースに保存する方がよいでしょう。メガバイトファイル。

私が言ったように、あなたがいくつかのことをすることが重要です:

  1. 情報を適切に構造化する - データベースを適切に設計し、データベースをテーブルに適切に分割し、パフォーマンスの目標を念頭に置いてテーブルをフィールドに分割することが非常に重要です。これがアプリケーションとクエリの基礎を形成するからです。それを間違えると、クエリが遅くなります。

  2. すべてのテーブルに関連するテーブル エンジンを適切に決定します。クエリのパフォーマンスに大きく影響するため、これは重要な手順です。たとえば、MyISAM は更新中のテーブルへの読み取りアクセスをブロックします。これは、ソーシャル ネットワーキングやニュース サイトなどの Web アプリケーションにとっては問題となります。なぜなら、多くの場合、ユーザーは、生成されたページが表示される前に、基本的に情報の更新が完了するまで待たなければならないからです。

  3. 適切なインデックスを作成します。パフォーマンスにとって非常に重要です。特に、急速に成長する大規模データベースを使用するアプリケーションでは重要です。

  4. データの増加に合わせてクエリのパフォーマンスを測定し、それを改善する方法を探します。除去する必要のあるボトルネックは常に見つかります。これは継続的なノンストップ プロセスです。一般的な Web アプリケーションはすべて、これを行う必要があります。

于 2012-11-05T11:21:37.260 に答える
1

CouchDB や MongtoDB のような NoSQL データベースはオプションだと思います。ファイルを別々に保存し、既知のファイル名でリンクすることもできますが、システム アーキテクチャによって異なります。

于 2012-11-05T11:01:06.730 に答える