1

http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/

FacebookはMySQLを使用しますが、最適化はそこで(Memcachedレイヤーの「反対側」で)実行しやすいため、主にKey-Value永続ストレージとして結合とロジックをWebサーバーに移動します。

誰かがmysqlで単純なキー/値ストアを実装する方法を説明できますか?それは単に主キーとしてbigint+の単一の列を持つテーブルLONGTEXTですか?

4

2 に答える 2

1

出発点は、実際には「データはリレーショナルですか?」である必要があります。もしそうなら、リレーショナルデータベースを使用してください!

Key-Valueは非リレーショナルデータに最適なソリューションですが、データがリレーショナルである場合は、SQLを使用してそれを実行してください。

于 2011-07-10T22:39:07.087 に答える
0

最初の質問に答えるには、はい、キー/値ストアはまさにそれです。キーとそのキーに関連付けられた値を保存します。そして、キーに基づいてクエリを実行します。

これから得られる大きな利点は、

  • スケーラビリティ。これで、データを数千台のマシンに簡単に分散できます。これは、従来のRDBMSが得意ではないことであり、多くのマシンでの結合と酸の保証は不可能であるか、非常に低速です。

Facebookには、通常のRDBMSが使用するリレーションモデル、つまりグラフに適合しないデータもたくさんあります。つまり、SQLで処理するのではなく、データ自体のグラフの性質をクエリ/保存/処理します。

そのようにするためのコストは複雑であり、多くの場合、 ACIDプロパティのいくつかのポイントをあきらめる必要があります。

私たちの残りの部分、それはfacebook / google /linkedin/etcではありません。最大数百万人のユーザーがいるサイトを処理するだけでよく、通常は従来のデータベースの使用に固執することができます。

于 2011-07-10T22:51:19.983 に答える