2017-05-23 9 views
0

skipとページング(および関連するパフォーマンス上の問題)を使用する方法について多くのことを読んだことがあります。私のアプリケーションでは、パフォーマンス上の問題は問題ではありませんが、要求しているページの間に新しいレコードが到着した場合、スキップで何が起こるかはわかりません。モルフィアは改ページ中に到着する新しいレコードをどのようにスキップしますか?

たとえば、10個のレコードがあり、ユーザーが5のページをリクエストして配信するとします。ユーザーが最初のページをブラウズしているときに、別の5レコードがdbに挿入されると、ユーザーは次の5ページを要求します。IDまたは日付をソートすると仮定すると、ユーザーは同じ5レコードを返します2番目のページでは、skipは新しく追加された最初の5個のレコードをスキップし、次の5個のレコードを返します。これは元々返されたレコードと同じです)。

答えて

0

あなたは正しいですか?エントリの追加/削除によるパフォーマンスと正確さの両方が問題になります。

良い説明についてはhttp://use-the-index-luke.com/no-offsetを参照してください(Markus Winandは長年にわたってオフセットを戦っていました;-))。 キーセットページネーションは、私が知っているところからMongoDBでもMorphiaでもサポートされていないので、自分で構築する必要があります。固有のもの(日付やIDなど)で常に作業していることを確認してください。

他のシステムでは、この機能をネイティブに実装しています。たとえば、search afterのElasticsearchです。

+0

私が探していたもの - ありがとう! – mark

関連する問題