我们正在编写门户网站,就像我们在Db fro Modules中存储html数据的每个门户网站一样。 所以我认为我可以将每个模块缓存在文件中。我使用OnLoad事件检查此模块是否有缓存文件,使用该文件,否则创建缓存文件:
if (!IsPostBack)
{
string Path = AppDomain.CurrentDomain.BaseDirectory + "\\Cache\\Modules\\" + ModuleId + ".dat";
if (File.Exists(Path))
{
Controls.Clear();
Literal ltCache = new Literal();
ltCache.Text = File.ReadAllText(Path);
Controls.Add(ltCache);
}
else
{
base.OnLoad(e);
StringBuilder SB = new StringBuilder();
StringWriter SW = new StringWriter(SB);
HtmlTextWriter htmlTW = new HtmlTextWriter(SW);
//this.Visible = true;
this.RenderControl(htmlTW);
File.WriteAllText(Path, SB.ToString());
//this.Visible = false;
}
}
但我知道我怀疑这是个好主意。 你怎么看?从文件中检索数据会比从DB中检索数据更慢吗?
答案 0 :(得分:3)
由于您使用的是.NET Framework,因此您应该使用众多.NET缓存功能之一。
您可能需要查看以下文章,了解有关该主题的一些提示:
答案 1 :(得分:1)
如果你希望它有合理的机会成为数据库的改进,你应该把它缓存在内存中。
数据库是基于磁盘的,具有内存缓存,因此如果您将其缓存在磁盘上,只有当您的文件恰好位于内存中的磁盘缓存中时才会更快。由于数据库缓存比磁盘缓存大很多,因此基于磁盘的缓存很可能会使其变慢。
答案 2 :(得分:0)
文本文件不会很大,所以最好将它们存储在数据库中