フラットファイルデータベースPHPアプリケーション
質問
私はデータベースに依存するアプリを作成していますが、フラットファイルデータベースを使用するつもりです。これから離れる重大な理由はありますか?
mimesisを使用しています( http://mimesis.110mb.com ) mySQLを使用するよりも簡単です。mySQLの使用経験はほとんどありません。 データベースのセキュリティについて疑問に思っています。しかし、ファイルはphpとして保存されており、堅牢なデータベースソリューションのようです。
データベースのバックアップと転送のしやすさが本当に好きです。これはmySQLでより困難だとわかりました。私は誰もがmySQLの方法を好むようです-クエリに関してはより速いかもしれませんが、それ以外はフラットファイルdbsから離れて(最終的に)適切にmysqlを学ぶ理由がありますか?
編集 人々に知らせるためだけに 最終的にはmySQLを使用し、CodeIgniterフレームワークを使用しています。まだフラットファイルdbに似ていますが、このプロジェクトでは必要以上に複雑であることがわかりました。
解決
答えは" Fine"です。フラットファイル構造のみが必要な場合。 1つのテスト:1つの単純なスプレッドシートですべてのニーズに対応できますか?そうでない場合は、フラットファイルではなくリレーショナル構造が必要です。
不明な場合は、おそらくフラットファイルを起動できます。 SQLiteは開始するのに最適なアプリです。
あなたが間違った選択をしたことを学ぶのは良くありません、もしあなたがその過程であまりにも遠くまでそれを見つけたなら。しかし、リレーショナル構造の重要性を理解し、必要に応じて早期にアップサイズすれば、問題ありません。
他のヒント
SQLite を使用すると、多くのSQL機能を備えたデータベースを取得できますが、ファイルは1つだけです。
ご挨拶、私はMimesisの作成者です。リレーショナルデータベースとSQLは、処理する必要がある大量のデータがある状況で重要です。フラットファイルは関係データベースよりも優れていますか?アーカイブシステム全体がフラットファイルで動作し、地球上で最も人気のある検索エンジンであるため、Googleに問い合わせることができます。 Mimesisはシステムと比較されますか?おそらくない。
Mimesisは、特定のニッチ問題を解決するために作成されました。私は無料のウェブサイトのみをオンラインで使用しています。多数の無料サイトでPHPを使用できます。ただし、無料のSQLデータベースアクセスは提供しません。そのため、データを保存し、ロックを実装し、ファイルのアクセス許可を回避するデータベースを作成する必要がありました。これらはMimesisの主要な設計パラメーターであり、それらすべてで成功します。
Mimesisの速度のアイデアが必要な場合、最初のページに移動すると、サイトを表示している国がわかります。この無料データベースは、サイトip2nation.comから取得され、Mimesis ffdbに移植されます。数千ではないにしても数百のエントリがあります。
さらに、メインページのヒットカウンターは既に7000人以上の訪問者を追跡しています。これらはUNIQUE訪問です。つまり、スクリプトはデータベースを検索して、訪問しているIPアドレスが既に存在するかどうかを確認する必要があり、合計IPのカウントも実行します。
メインページがかなり速く読み込まれ、バックエンドで実行されている2つのかなり集中的なMimesisデータベーススクリプトがあることに気付いた場合。 Mimesisがデータを保存する方法は、読み取りおよび書き込み手順と変換手順を高速化するために行われます。ほとんどのffdbサンプルスクリプトまたはその他のffdbスクリプトは、単純なCVSファイルまたはその他の構造を使用してデータを格納します。 Mimesisは、実際にいくつかのレベルでバイナリデータを解釈して機能を強化します。 Mimesisは、フラットファイルデータベースとリレーショナルデータベースのハイブリッドです。
他のほとんどのffdbスクリプトでは、更新が行われるたびにCOMPLETEファイルを書き換えます。 Mimesisはこれを行いません。構造ファイルのみを書き換え、実際の行の内容を更新します。そのため、エラーが発生しても、追加された新しいデータのみが失われ、古いデータは失われません。 Mimesisはその歴史も保持しています。テーブルが更新されない限り、行が以前に持っていたデータはまだ含まれています。
すべての機能について続けることができますが、これは「Mimesisは史上最高のデータベース」として意図されたものではありません。暴言。さらに、SQLは利用可能な唯一のテクノロジではないという事実、および適切な開発パラダイムが与えられた場合、フラットファイルはリレーショナルデータベースよりも優れているという事実に人々の目を開かせることを意図しています。
長いライブフラットファイルとそれに続く頭痛に立ち向かうコーダー。
バックアップのしやすさが本当に好きです データベースを転送します mySQLの方が難しいことがわかりました。
別の回答に記載されているように、 SQLite を使用します。バックアップするファイルは1つのみです。または、MySQLデータベースの定期的なダンプをSQLファイルに設定します。これは比較的簡単なことです。
誰もが好むようです mySQLの方法-そしてそれはそうです クエリに関しては高速化
速度は間違いなく考慮事項です。データベースは、データがより適切に編成されているため、はるかに高速になる傾向があります。
それ以外の理由はありますか フラットファイルdbsに近づかない (最終的に)mysqlを適切に学習しますか?
データベースソリューションを使用する理由はたくさんありますが、フラットファイルについては議論が必要です。 「通常」以外のことを学ぶのは常に良いことです。つかいます。 ほとんどの決定はアプリケーションに依存します。同時ユーザー数は何人になりますか?トランザクションのサポートが必要ですか?
Mimesisが元のURLから http://mimesis.site11.com/
さらに、私はMimesisのフォーカスをffdbからキーバリューストアにシフトしています。格納している情報の種類と、それを取得するために使用する方法を考えると、より賢明です。 Mimesisのコーディングにも重大なエラーがありました(これは私が修正しました)。ただし、私はまだ新しいキーと値のストアタイプのテストフェーズにいます。私はまた、他のことによって脇に追い込まれてきました。ミューテックスメカニズムとしてのファイル作成からディレクトリ作成へのロックも変更されました。
相互運用性。 MySQLは、基本的に重要な任意の言語でインターフェースできます。 MimesisはPHPの外部では使用できそうにありません。
これは、プロファイラーを使用するか、外部からデータを変更しようとすると重要になります。
フラットファイル化の問題は、さらなる開発のために状況を調整するために、システムの基盤を改善するためにかなりの量のコードを変更する必要があることです。一方、それが純粋なSQLシステムであった場合、将来の処理にほとんど変更を加える必要はありません。