将 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 存储在数据库中以供使用有啥缺点?的主要内容,如果未能解决你的问题,请参考以下文章