2016-04-19 8 views
0

10000行のレコードセットについて、数百行のウィンドウだけが の開始行、停止行を介して購読されている場合、「準備完了」を表示するのに10秒以上かかりますか?ウィンドウを移動する前にすべてのレコードを削除する必要がありますか?なぜ流星は遅いですか?クライアントサイドページネーションが遅い

+0

メテオスクライブ( 'querydata'、Session.get( "queryid")、Session.get( "startrow")、Session.get( "stoprow")、{ onReady:function(){ console.log ( "READY NOW"); Console.log( "すべての開始DATAが完了しました" + queryData.find({})。count() ); }、 onError:function(){console.log( "onError"、arguments);} }); – user3078524

答えて

0

まず、本当に必要なものだけを公開し、そうでないものは公開しないようにしてください。例:

Meteor.publish('queryData',function(queryId,startRow,stopRow){ 
    return queryData.find({ ... query ...},{ fields: {name: 1, description: 1}}); 
}); 

これは、ドキュメントが大きい場合に特に重要です。

第2に、ブラウザのインス​​ペクタでwebsocketトラフィックを調べて、実際にパブリケーションでどれだけのデータを送信しているかを確認します。

第3に、コレクションスキャンが行われていないように、検索対象のキーにコレクションがインデックスされていることを確認します。

メテオールは一般にかなり速いですが、簡単な間違いは非常に遅く感じることができます。

+0

単にminimongoの作業を避け、配列を要求してテーブルエンジンにpushすると、minimongo I/O、素晴らしいスピードを避けることができます。 – user3078524