ユーザーデータのキャッシュソリューションを構築しています。データは現在sybaseに保存されており、5〜6個のテーブルに分散されていますが、クエリサービスは休止状態を使用してその上に構築されており、パフォーマンスが非常に低下しています。データをキャッシュにロードするには、10〜15時間の範囲でかかります。
そこで、50〜60列と5mm行の非正規化テーブルを別のリレーショナルデータベース(UDB)に作成し、最初にそのテーブルにデータを入力してから、JDBCを使用して新しい非正規化テーブルからキャッシュにデータを入力することにしました。これにより、キャッシュを構築する時間が短縮されます。 。これにより、パフォーマンスが大幅に向上し、約1時間でキャッシュを構築できるようになりましたが、5分以内にキャッシュを構築するという要件も満たしていません。非正規化されたテーブルは、次のクエリを使用してクエリされます
select * from users where user id in (...)
ここで、ユーザーIDが主キーです。クエリも試しました
select * from user where user_location in (...)
また、場所に一意でないインデックスを作成しましたが、それも役に立ちませんでした。
それで、クエリをより速くすることができる方法があります。そうでない場合は、いくつかのNOSQLソリューションを検討することもできます。
どのNOSQLソリューションが私たちのニーズに適しているか。大きなテーブルとは別に、私たちは毎日テーブルを約1mm更新します。
私はmongodbについて読んだことがあり、それは機能する可能性があるようですが、これほど多くの行と多くの毎日の更新があるmongodbの経験を投稿した人は誰もいません。
ご意見をお聞かせください。