夏に始めたい新しいプロジェクトのために、さまざまなデータベースタイプとDBMSを調べています。
MySQLとpostgreSQLでシステムを構築しましたが、データベースに関する知識と経験を拡大したいと思っています。
私のプロジェクトは、一種のソーシャルネットワーク/集約的な知識のものになります。 (まだそれを説明する用語をまだ開発していません)。
私は見てきました:
システムの要件:
私が調査する必要がある他のデータベースシステムを教えてもらえないかと思っていました。
オブジェクトリレーショナルデータベースも確認しました。PHPオブジェクト(PDO))で作業するというアイデアはとても気に入っていますが、パフォーマンスは少し悪いようです。
ここにDBAがいることを確認して、これらのシステムについて操作したフィードバックをいただければ幸いです。
ありがとう
あなたの抽象的な要件は私に「PostgreSQL」を叫びます。ただし、ブルジョワジーの最新情報を把握しておく価値はあると思うので、チェックしたいさまざまなもののリストを以下に示します。
私はこれらのものを広範囲に使用していません。私はそれらのほとんどを少し遊んで、常にPostgreSQLを使用してきました。要件を見ると、PostgreSQLが最初から満たされていないのはスケーラビリティだけです。一方、私の目的では、単一の専用データベースマシンに$ 4000のハードウェアを投入する方が、この問題に$ 4000のクラウドノードやローエンドマシンを投入するよりもはるかに簡単です。そして EnterpriseDB のように、PostgreSQLでスケーラビリティを実現する方法があります。
これらの側面をいじってみるのはとても楽しいですが、貴重で再生不可能なプロダクションデータを何かに入れる時が来ると、信頼性、安定性、長期的な実行可能性などの退屈な属性が前面に出てきます。
このことを考慮。あなたがMark Zuckerbergであり、コードベースまたはデータを放棄することを選択する必要があるとします。すべての開発スタッフを維持できますが、すべてのコードを放棄する必要があります。つまり、開発者がすべてを実装した方法についてのすべての開発者の記憶がなくなったとも言えますが、すべてのユーザーアカウントとすべてのユーザーをアップロードしたままにすることができます。データとそのすべて、またはすべてのデータをあきらめることができます。すべての構造とサーバー、構成、セットアップを保持しますが、すべてのデータベースのすべてのテーブルのすべての行を失います。
データを失うほうが悪いことは明らかです。すべてのユーザーがそのすべてのデータを再生成するのはなぜですか?失われたすべてのマーケティングデータについて考えてみましょう。これがFacebookが実際に収益を上げる方法です。そして、人々にFacebookのクローンを使用する機会を得るためにたくさんの起業家が唾液を流しています。一方、コードベースを紛失した場合、おそらく現在よりもさらに優れたコードベースを再構築できますが、オンラインで何かを非常に短い順序で行うことができます。ヘック—おそらく他の誰かのFacebookクローンコードベースを購入して実際のデータをロードすることはできますが、そのデータをコピーすることはできません。 Facebookがまだサーバー上にすべての人の重要なデータを保持している場合、離れる動機ははるかに低くなります。まだ悪いですが、はるかに少ないです。驚くほど少ないです。
皮肉なことに、奇妙な事故ですべてのデータを失う方が、すべてのコードを失うよりもずっと簡単です。ただし、ほとんどのインターネット企業では、データは会社であり、データは最も価値のある資産。そして、これは、伝統的で長年の実績があり、昔ながらの、セクシーでないリレーショナルデータベースの使用を検討する大きな理由です。
また、リレーショナルデータベースを使用できない理由や、nosqlデータベースを使用できない理由がないことも考慮してください。
Nosqlと言えば、私はFacebookの参照について1つだけ追加する必要があります。
非常に大きなスケールを計画している場合は、DBエンジンをシステム管理者向けにするか、開発者向けにするかをお勧めします。
地理的に分散できず、効率的かつ簡単にバックアップする方法がない、開発者フレンドリーで超高速のMongoDBを終了します。ここではMongoDBを使用していますが、システム管理者向けの仕様ではRiakまたはCouchDBの方が見栄えが良いようです(RiakまたはCouchDBの経験はありません)。