如何在数据库中保存大型html内容?开发内容管理系统
本文关键字:内容 开发 管理系统 html 大型 数据库 保存 | 更新日期: 2023-09-27 18:27:03
我正在为我的网站开发内容管理系统。我遇到了如何将大型 html 内容保存在数据库中的问题。存储过程将其参数限制为 8000 个字符,并且不接受任何超过此长度的内容。那么我如何将我的内容存储在数据库中。
或者还有其他更好的方法来完成这项工作,在哪里保存 html 内容。还有如何存储图像(html内部(或其链接,实现方案是什么?
许多CMS系统正在运行,他们如何实现此功能。
请提出更好的想法,如何处理此要求。
我正在使用的工具:C#.netSQL Server 2005Asp.net 2.0
如果您使用的是 SQL Sever 2005,为什么不使用 VARCHAR(MAX)
数据类型?
VARCHAR(MAX)
和NVARCHAR(MAX)
可以容纳与旧TEXT
和NTEXT
可以容纳的相同数量的数据(2 GB(,但它们比TEXT
/NTEXT
灵活得多。它们存储在用于其他数据类型的相同类型的数据页中。
至于如何处理图像,我的建议是将它们存储在文件系统中,并简单地使用指向它们的普通img
标签。
这对于CMS来说是相当典型的,将文章内容存储在一个表格中,该表格稍后将嵌入到模板中的某个地方。尽管像MongoDB这样的文档数据库在这种类型的应用程序中越来越受欢迎。
您可能希望在此处阅读有关大值数据类型的信息 - http://msdn.microsoft.com/en-us/library/ms178158(v=sql.90(.aspx
您可以使用大值数据类型存储最多 2^31-1 字节的数据。希望这有帮助。
在数据库中使用 blob 字段(例如 MySQL 中的 BIGTEXT(。然后,您可以将 HTML 内容流式传输到数据库字段。或者,如果要采用 documentum 类型方法,请将 HTML 内容另存为文件,并保留内容在数据库中的位置。如果您想使用 hadoop 等来搜索大量内容,后一种方法很好。如果您最初想要更简单的方法,我会使用 blob 方法,因为在过去几年中,在 blob 中搜索内容已经走了很长一段路。但是,请注意,MySQL的集群版本(例如(对您可能想要的某些内容(例如xpath(没有很好的支持。
你不应该保存图像、HTML 或任何不会在 SQL WHERE 语句中使用的内容。相反,我会将这些HTML代码片段和图像保存在文件系统上,命名为[PARENT_TABLE_NAME]。[ROW_PRIMARY_KEY].html.这样,您可以在查询时释放数据库时间,因为您可能不会对这些 HTML 片段使用 WHERE 过滤器,并且您的 HTML 更新/删除/插入不可能更快并且可以由操作系统正确缓存。