使用 MYSQL,带有 EF 5.x 和 MVC3。我有一张大约有 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 客户端对数据库运行此 SQL 时,大约需要 3 分钟才能提取所有行。
将这些数据读入缓存的最佳方法是什么,或者我应该做些什么不同的事情?如果可以,我可以将表直接缓存到 MySQL 缓存中吗?或者我应该将术语搜索直接发送到数据库,而不是使用缓存中的数据。