【问题标题】:Reading HTML data from database is slow? Need a better approach?从数据库中读取 HTML 数据很慢?需要更好的方法吗?
【发布时间】:2010-03-10 09:42:46
【问题描述】:

我们在 mysql 中有一个 18GB 的​​表,其中有一列“html_view”存储了我们在页面上显示的 HTML 源数据,但是现在从“html_view”列中获取 html 数据需要花费太多时间,这使页面加载缓慢。

我们想要一种可以简化我们现有结构的方法,以更快地从 db 或任何其他方式加载 html 数据。

我们计划的一个想法是将 HTML 数据存储在 .txt 文件中,而在 db 中,我们将只存储 txt 文件的路径,并通过读取文件从该特定文件中获取数据。但是我们担心它会在我们的服务器上进行大量的读写操作,并可能会降低服务器的速度。

有没有更好的方法来加快这种情况?

【问题讨论】:

  • 您使用的是哪个应用程序/Web 服务器?我想您应该研究一下这些组件的缓存功能,以便更有可能从内存中获取数据。
  • 我们使用“Apache/PHP/MYSQL”作为网络平台?有什么我们可以做的吗,请分享任何示例或文章。谢谢

标签: database mysql inputstream


【解决方案1】:

首先,为什么要将 HTML 存储在数据库中?为什么不按需渲染呢?

对于大文本表,您可以将压缩文本存储在字节数组中,或者以 base64 压缩和编码为纯文本。

当您有一个包含大文本列的数组时,该表还有多少其他列?如果不是太多,您可以对表进行分区并创建一个两列键值存储。这应该比从磁盘读取文件更快更简单。

【讨论】:

  • 我们的旧结构是基于将 HTML 存储在数据库中,所以不可能这么早就改变它,所以我们计划做一些较少的改变,以提高现在的性能。在“将压缩文本存储在字节数组中”或“以 base64 压缩和编码为纯文本”中,哪一个会更快以及如何实现,您能否分享任何 PHP 示例?
  • 我不懂 PHP,但这可能会有所帮助:php.net/manual/en/ref.zip.php。字节数组将比 base64 更简单、更小、更快。
【解决方案2】:

看看Apache Caching guide
它解释了磁盘和内存缓存 - 从我的观点来看,如果内容是静态的(如数据库表所示),您应该使用 Apaches 功能而不是编写自己的较慢机制,因为您在顶部添加了多个层。
但是,通常的度量而不是估计仍然适用;-)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 2021-08-20
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多