我应该只在数据库中存储固定大小的数据元素吗?

时间:2008-10-13 00:11:36

标签: database-design

如果存储在数据库的给定字段中的数据量未知,并且可能非常大,我应该将其存储在外部文件中而不是存储在数据库中的字段中吗?

5 个答案:

答案 0 :(得分:2)

您是否需要数据的事务语义(提交,回滚)?如果是这样,那么使用外部文件系统会极大地复杂化生活 - 使用DBMS。如果您不需要事务语义,那么文件系统可能有意义。

答案 1 :(得分:1)

这就是设计BLOB或Memo字段类型的原因。他们非常善于存储可变长度/大对象。

话虽这么说,我仍然会使用文件系统存储某些大型对象,而不是使用数据库。如果对象非常大(每个多MB),我会考虑将它们放在文件系统上并在数据库中存储指针(文件名)。

答案 2 :(得分:1)

您应该选择一个能够有效处理大数据的数据库管理系统。数据库系统可以将其存储在数据库文件中或存储在数据库内链接的外部文件中。 SQL Server 2008可以透明地完成这两项工作;不确定其他系统提供什么。

答案 3 :(得分:0)

这取决于你的任务。将大数据存储在FS而不是DB上存在优缺点。至于大小,您可以在大多数数据库的字段定义中限制它。

答案 4 :(得分:0)

我认为这可能取决于您将如何使用这些数据。例如,如果我存储将在网站中使用的图像(Flickr或类似的东西),我宁愿将图像存储为文件并在数据库中保留引用,而不是将图像数据存储在数据库中并且每次通过一些HTTP处理程序重建图像数据。另一方面,如果文本存储在数据库中,则需要搜索的大型文档集合可能更有用。