2017-02-18 4 views
0

私はFirebase経由でアプリケーションを構築しています。データベースノードのスケーラビリティについて質問があります。私はデータを分散化しましたが、#好きなものに基づいて投稿をランク付けしようとすると、良い解決策を見つけることができません。過去30日間の曲の中で最も好きな曲が上位10位のページがありますが、このクエリがアプリの規模に関係しているかどうか心配しています。この時点で、数百曲から数千曲の曲がポストされますが、もしその節が数百万曲から構成されていたらどうなりますか?ランキングでのfirebaseスケーリングクエリ

構造は次のようである:上記のJSONは、2本のアップロードを示す

"totalSongs" : { 
    "-KHjnJcG2av6nyIEP1Wu" : { 
     "author" : "64df19dd-68fb-43cb-ab1b-b8e9f55cf", 
     "date" : 1463238347457, 
     "key" : "KHjnJcG2av6nyIEP1Wu", 
     "likesCount" : 3, 
     "name" : "anna", 
     "reasonUpload" : "-its good mayne", 
     "uploadTitle" : "A tribe called quest - we got the jazz", 
     "uploadUrl" : "cxN4nKk2cfk" 
    }, 
    "-KHkUAJ48h-3k6HIDOri" : { 
     "author" : "64df19dd-68fb-43cb-ab1b-b8e9f51cf", 
     "date" : 1463249843668, 
     "key" : "-KHkUAJ48h-3k6HIDOri", 
     "likesCount" : 6, 
     "name" : "peter", 
     "reasonUpload" : "-summer vibes", 
     "uploadTitle" : "Kool & The Gang", 
     "uploadUrl" : "2SFt7JHwJeg" 
    } 
} 

。 LikesCountでランク付けできます(angularJS、ng-repeat、orderBy: '-likesCount'経由)が動作しますが、アップロード数が400万件の場合はどうなりますか?私は30日ごとに新しいノード(totalSongs2、totalSongs3など)を作成し、そのタイムフレーム内のアップロードで構成されるノードを作成することを考えていましたが、これはやや奇妙なようです。 Firebaseがそのようなノードを照会するのはどれくらい難しく、これをどうやって別の方法で行うことができますか?

答えて

0

400万アップロード?私はあなたが購入したFirebaseパッケージに、その膨大な額を払っていると推測しています。

JSON構造をどのように整理するかによって異なります。私はこれを日付に対応させて実装することを提案していました。子ノードを拡張すると、その期間にアップロードされた曲のリストを示す固有の識別子があります。

子ノードがさらに複雑になると、コードが乱雑になります。 Firebaseが何かを照会することは困難ではありませんが、同時実行の接続がどのくらい重大なタスクのパフォーマンスになるかという問題があります。無料パッケージには限りがありますが、購入パッケージには無制限です。

JSONのディスク使用量はそれほど多くありませんが、無料のパッケージで10個のデータベースを使用すると、Firebaseの構造を利用して、可逆性を高めることができます。

+0

ご意見ありがとうございます。 400万回のアップロードは単なる仮説ですが、私の質問の理由は、これが将来問題につながる場合、私はむしろそれらに取り組もうとしています。そして、はい、数ヶ月以内に私は購入パッケージを使用します。 – Zizazorro

+1

@Zizazorro購入したパッケージのために4百万円は問題ではありません。購入パッケージにBigQuery SQLクエリが含まれているため、多くのギガバイトに移動します。 Firebaseで購入したBig DataとBigQueryで動作するパッケージは、何百万という完全にうまく動作します。スケーラビリティは問題にならないでしょう、Firebaseは消費者のためにそれをカバーしました。 – user7568042

+0

ニース、私はそれを調べます!ありがとう – Zizazorro