EF 5.x および MVC3 で MYSQL を使用します。都市と国の組み合わせを持つ約 320 万行のテーブルがあります。クライアント側に、都市の検索用語を受け取り、jQuery/ajax を使用して提案を返すオートコンプリート テキスト ボックスがあります。
私が直面している課題は、このテーブルを初めて使用するときにメモリにキャッシュすることです。
CityData = DataContext.Citys.OrderBy(v => v.Country).ToList();
if (CityData.Any())
{
// Put this data into the cache for 30 minutes
Cache.Set("Citys", CityData, 30);
}
これは、db-context タイムアウトを 5 分に設定してもタイムアウトします。MySQL クライアントを使用して DB に対してこの SQL を実行すると、すべての行をプルするのに約 3 分かかります。
このデータをキャッシュに読み込む最善の方法は何ですか? テーブルを MySQL キャッシュ メモリに直接キャッシュできますか? または、キャッシュ内のデータを使用して検索するのではなく、用語検索を DB に直接送信する必要があります。