私は、開発中のMySQLデータベース上で動作するWebアプリケーションを持っています。アプリケーションをGoogle App Engineに移行することを検討しており、単純なリレーショナルデータベースモデルを非リレーショナルアプローチに変換する方法をよりよく理解したいと考えています。データベースの質問:単純なリレーショナル表を非リレーショナルに変更しますか?
私は長年のリレーショナルデータベースの人であり、BigTableなどの列ベースのDBでの経験はありません。 Googleが小規模なリレーショナルデータベースのデプロイメントをサポートしている場合には、私の質問は一般的でGoogleに限定されていないことを述べたいと思います。単純なリレーショナルモデルを非リレーショナルDBで表現する方法を理解したいと思います。名前とIDを持つ、私は多くのアイテムを持っている
Items Table
------------
ItemID ItemName ItemPriority
1 "Car" 7
2 "Table" 2
3 "Desk" 7
ItemProperties Table
---------------------
ItemID Property Importance
1 "Blue" 1
1 "Four Wheels" 2
1 "Sedan" 0
2 "Rectangular" 1
2 "One Leg" 1
、それぞれ次のよう
私のデータベース(簡体字)があります。各項目には複数のプロパティがあり、各プロパティにはいくつかのパラメータがあります(それぞれのプロパティの名前と重要度のみが記載されていますが、それ以上です)。私には数千万のアイテムがあり、それぞれには何百ものプロパティがあります。
使用シナリオ:ItemNameを入力として受け取り、itemsテーブルでそのIDを調べ、そのIDですべてのプロパティを取得します。次に、(メモリ内の)プロパティのリストを分析し、結果を返します。
作業の90%は、(私が正しく理解するなら)非リレーショナルDBの痛み点であるパラメータに基づいてルックアップされます。
推奨されるアプローチは何ですか?
最初のオプションについては、最初の、主に2番目のクエリは非常に遅くなりませんか? –