有没有更好的方法在mssql中存储大文本?

时间:2018-01-10 12:52:00

标签: asp.net sql-server tsql

所以我一直在阅读一些关于我是否应该在MSSQL中存储大文本的文章,但是我读到的所有文章似乎都是固执己见的,并且没有具体的答案。我正在尝试在Asp.net中构建一个wiki,每个页面大约10000-20000个字符,我将有超过3000个页面

我想知道将文本保存在数据库中是否可以?因为DB臃肿会慢吗?如果不是,我该怎么办?将它们保存在文本文件中并保留地址?

1 个答案:

答案 0 :(得分:3)

您只需使用varchar(max)nvarchar(max)数据类型即可存储文本。如果需要,后者用于支持Unicode。

更好吗?它主要取决于你将如何处理这些数据。根据您的SQL Server版本和硬件,您有很多选择 - 这意味着您需要(必须)测试解决方案,以确保您使用最适合您的方案的技术。

如果您担心数据的大小,可以查看压缩数据的选项:

  • 用于在SQL Server 2016 SP1之前实现压缩的SQL CLR函数
  • COMPRESS并且从SQL Server 2016 SP1
  • 开始可以解压缩内置函数

如果您要对文字执行搜索,您也应该检查full text search。或者您可以创建标签并按其搜索。

同样,如果某些数据在一段时间后不会被读取或修改,您可以将其存档。有不同的策略。

如果您使用的是SQL Server 2017,则还可以检查COLUMNSTORE索引,因为nvarchar(max)受支持。