興味深いデータベースの問題があります。サイズが150GBのDBがあります。私のメモリバッファは8GBです。
ほとんどのデータはめったに取得されないか、主にバックエンド プロセスによって取得されます。一部の機能でそれらが必要になるため、それらを維持することを非常に好みます。
その一部 (つまり、一部のテーブル、および特定のテーブルの一部の識別可能な部分) は、ユーザー向けの方法で非常に頻繁に使用されます。
後者が常にメモリに保持されていることを確認するにはどうすればよいですか? (これらには十分なスペースがあります)
詳細: Ruby on rails を使用しています。データベースはMYSQLで、テーブルはINNODBを使用して保存されています。2 つのパーティションにまたがってデータをシャーディングしています。シャーディングしているため、JSON BLOB を使用してほとんどのデータを保存し、主キーのみにインデックスを付けます
Update 2 注意が必要なのは、データが実際にはバックエンド プロセスとユーザー向け機能の両方に使用されていることです。しかし、後者の場合、それらははるかに少ない頻度でアクセスされます
更新 3 最近、8Gb はオモチャだと言う人もいます。私は同意しますが、よりスマートで効率的なソリューションがある場合、dbのサイズを増やすだけでは純粋な怠惰です