Это хорошая идея для кэширования данных HTML в текстовом файле? - PullRequest
1 голос
/ 30 января 2010

Мы пишем портал и, как и любой другой портал, храним HTML-данные в Db для модулей. Поэтому я подумал, что могу кешировать каждый модуль в файлах. Я использую событие 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;
   }
  }

но знаю, я сомневаюсь, что это хорошая идея. что ты думаешь? получение данных из файла может замедлить работу сервера больше, чем получение данных из БД?

Ответы [ 3 ]

3 голосов
/ 30 января 2010

Поскольку вы используете .NET Framework, вам, вероятно, следует использовать одну из многих функций кэширования .NET.

Вы можете проверить следующие статьи для некоторых советов по теме:

1 голос
/ 30 января 2010

Вы должны скорее кешировать его в памяти, если хотите, чтобы у него был достаточный шанс улучшить базу данных.

База данных основана на диске с кешем памяти, поэтому, если вы кешируете ее на диске, это будет быстрее, если ваши файлы окажутся в кеше диска в памяти. Поскольку кэш базы данных намного больше, чем кэш диска, вполне вероятно, что кэш на диске действительно замедлит его.

0 голосов
/ 30 января 2010

ну, текстовые файлы не будут большими, поэтому лучше хранить их в базе данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...