3

一部のフォーラム ソフトウェアがデータをデータベースに保存する方法を見てから (たとえば、phpBB はほぼすべての保存に MySQL データベースを使用します)、なぜ彼らはそのようにしているのか疑問に思い始めました。フォーラムのトピックや投稿を保存するために xslt を使用した xsl を使用するのと同じくらい高速で効率的ではありませんか? または、少なくとも投稿をトピックに保存するには?

4

4 に答える 4

8

フラット ファイルではなくデータベースを使用する理由はたくさんあります。ここに私の頭の上のいくつかがあります。

参照整合性

インデックスと効率的な検索

SQL 結合

詳細については、次のいくつかの投稿を参照してください。

データをテキスト ファイルに保存でき、これらのファイルを簡単に処理できる場合、なぜ Mysql や Oracle などのデータベースを使用する必要があるのでしょうか。

フラットファイルではなく MySQL を使用する理由

SQL データベースを使用する理由

于 2011-05-29T17:54:47.940 に答える
4

しかし、これはまさにデータベースがデータの保存と検索のために設計され、最適化されたものです。データベースを使用すると、フォーラムの設計者は問題に集中でき、ストレージの実装についても心配する必要がなくなります。データベースの世界で行われたすべての作業を無視して、代わりに独自のソリューションを実装するのは意味がありません。時間がかかり、バグが多くなり、実行速度が遅くなります。

于 2011-05-29T17:52:38.663 に答える
3

データベース エンジンは、同時実行の問題をすべて処理します。2 人のユーザーが同時にフォーラムに書き込みを試みたとします。投稿をファイルに保存すると、最初の試行でファイルがロックされるため、2 回目は最初の試行が完了するまで待機する必要があります。

それ以外の場合は、すべてのファイルをスキャンするよりもデータベースで検索する方がはるかに高速です。

したがって、基本的に、ユーザーが同時に変更できるデータを保存することはお勧めできません。データベースでの検索ははるかに効率的です。

于 2011-05-29T17:56:15.417 に答える
1

簡単にデータにアクセスできます。ユーザーによって作成された、または特定のキーワードで作成された日付間の投稿を見つけるのがはるかに簡単になります。上記のすべてをフラット ファイル ストレージで実行できますが、これは IO 集中型で低速になります。各投稿を独自のファイルに保存するという考えがあった場合、容量不足のためではなく、使用可能なすべての inode を消費してしまうため、ディスク容量が不足するという問題が発生します。

このようなソフトウェアには通常、静的キャッシュ機能があります。変更されないページは静的 HTML ファイルに書き出され、データベースにヒットする代わりにそれらが提供されます。

静的キャッシュとリレーショナル DB ストレージを組み合わせることで、両方の長所を活かすことができます。

于 2011-05-29T17:55:01.447 に答える