将 html 存储在数据库中以供使用有啥缺点?

Posted

技术标签:

【中文标题】将 html 存储在数据库中以供使用有啥缺点?【英文标题】:What are some cons of storing html in a database for use?将 html 存储在数据库中以供使用有什么缺点? 【发布时间】:2011-09-30 20:04:11 【问题描述】:

虽然搜索该主题很容易,但得出结论却并不容易。将 html 存储在数据库中以供使用有什么缺点?

【问题讨论】:

你能详细说明一下吗? html来自哪里?它是干什么用的? 我首先关心的是转义 javascript,这样别人就无法制作恶意网页... 【参考方案1】:

HTML 是静态的,从数据库中查询数据会使用数据库资源;数据库资源通常在中度到重度使用的系统中受到更多限制,因此不要将 HTML 存储在数据库中,而是将其放在文件系统上,这样可以在不使用关键资源的情况下检索它。

【讨论】:

【参考方案2】:

这取决于数据库中 HTML 的使用。如果它是您仅作为 blob 访问的数据(这意味着您从不/很少查询 HTML 的内容),那么我认为在某些情况下这可能是一个好主意。那么问题本质上与“我应该在我的数据库中存储 xyz 格式的文件吗?”此类问题的答案取决于几件事:

    文件有多大?将它们存储在文件系统中,仅将它们的文件名/路径存储在数据库中会更有效吗? 您需要将数据复制到其他服务器吗?如果是这样,那么在数据库中存储原始文件可能比在 FS 上更容易,前提是您已经拥有数据库同步基础架构。 您的查询用途是什么?它们对数据库或文件系统存储更友好吗?

现在,如果您谈论的是存储经常需要查询的 HTML 数据,那将彻底改变游戏规则。

任何数据库规范化纳粹都会告诉你永远不要这样做。但是在某些情况下它可能有用。例如,如果您使用某种全文搜索引擎,您可能希望将其保存在数据库中——或者以全文搜索引擎使用的任何形式。

【讨论】:

【参考方案3】:

在最广泛的意义上,HTML 是一种文档标记语言,用于将数据结构化到文档中。另一方面,数据库应该包含按其逻辑关系组织的原始数据。文档使用格式并可能冗余地呈现数据,但真正的底层数据始终是固定的。因此,您应该尽可能存储最直接、最原始的数据形式,并使用查询语言本身为您的目的创建合适的视图,并以有意义的方式检索它,以及其他特定于输出的数据数据处理以生成文档。

当然,您可能希望缓存输出格式化操作的结果,您也可以选择将缓存存储在数据库中。那当然没问题。但是关于原始有效载荷数据,我总是会选择上述内容。

【讨论】:

以上是关于将 html 存储在数据库中以供使用有啥缺点?的主要内容,如果未能解决你的问题,请参考以下文章

将 .p12 证书存储在钥匙串中以供以后使用

将存储过程与 Dapper 一起使用有啥缺点吗?

只读 DB2 使用来自 REXX 中的 PDS(Dataset) 的成员并存储在 Stem 变量中以供进程相互使用

使用数据类型“文本”存储字符串有啥缺点吗?

JDBC技术

存储过程跟SQL语句比较,各有啥优点和缺点?