数据库 vs文件系统存储

数据库最终将数据存储在文件中,而文件系统也将数据存储在文件中。在这种情况下,DB 和 File System 之间有什么区别。它是以检索的方式还是其他方式?

数据库最终将数据存储在文件中,而文件系统也将数据存储在文件中。在这种情况下,DB 和 File System 之间有什么区别。它是以检索的方式还是其他方式?

81

数据库通常用于以插入、更新和 / 或检索 (取决于应用) 的有效方式存储具有明确定义的数据格式的相关结构化数据。

另一方面,文件系统是一种更非结构化的数据存储,用于存储任意的、可能不相关的数据。文件系统更通用,数据库建立在文件系统提供的通用数据存储服务之上。[Quora]

如果您正在查找特定文件,则文件系统很有用,因为操作系统维护某种索引。但是,txt 文件的内容不会被索引,这是数据库的主要优点之一。

对于非常复杂的操作,文件系统可能会非常慢。

RDBMS 的主要优点:

表彼此相关

SQL 查询 / 数据处理语言

添加到 SQL 的事务处理 (Transact-SQL)

使用服务器端对象(如存储过程、函数、触发器、视图等)的服务器-客户端实现。

文件系统相对于数据库管理系统的优势是:

当处理具有任意可能不相关数据的小数据集时,文件比数据库更高效。对于简单的操作,读、写、文件操作更快、更简单。

你可以在互联网上找到 n 个不同的数字。

24

应该注意的是 Unix 有所谓的 inode 限制。如果您存储数百万个记录,那么这可能是一个严重的问题。您应该运行df -i查看有效使用的 % 这是一个文件系统文件限制-即使您有足够的磁盘空间。

24

“他们是一样的”

是的,存储数据只是存储数据。在一天结束时,您有文件。您可以将大量内容存储在许多文件和文件夹中,在某些情况下将是这样。有一个众所周知的版本控制解决方案(svn),最终使用基于文件系统的模型来存储数据,从而放弃了它们的 BerkeleyDB。罕见但发生。More info

“他们完全不同”

在数据库中,你有你没有与文件的选项。想象一个文本文件 (像 tsv / csv) 与 99999 行。现在尝试:

插入一列。这很痛苦,你必须改变每一行并读写整个文件。

找到一行。您可以扫描整个文件或自己构建索引。

删除一行。查找行,然后在其后读取并写入所有内容。

重新排序列。再次,全读 + 写。

对行进行排序。完全读取,某种排序-然后下次再进行。

还有很多其他优点,但是当您想到基于文件的数据库替代方案时,这些是您要尝试爬上的第一座山。那些人为您编程了所有这些,这是您可以使用的;考虑可能的(最常见的)情况,列举您要对数据执行的所有可能的操作,然后确定哪种操作更适合您。考虑好处,而不是时尚。

同样,如果您存储 JPG 图片并且只通过一个键(它们的 ID 可能是?)查找它们,那么经过深思熟虑的文件系统存储会更好。文件系统,顺便说一句,今天接近数据库,因为它们中的许多使用平衡树方法,所以在 BTRFS 上,您可以将所有图片放在一个文件夹中-并且每次访问文件时,操作系统都会默默地实现类似早期 SQL 查询的功能。

那么,数据库还是文件?...
让我们看几个典型的例子,当一个比另一个好的时候。(这些不是完整的列表,当然你可以在两边都塞进更多的东西。)

DB 表在以下情况下会更好:

您希望存储许多具有完全相同结构的行(没有块浪费)

您需要按多个值快速查找 / 排序(索引表)

您需要原子事务(数据安全)

您的用户将始终读取 / 写入相同的数据(更好的锁定)

文件系统是更好的方式,如果:

您喜欢对数据使用版本控制(dbs 的噩梦)

您的大块数据经常增长(通常是日志文件)

您希望其他应用程序在没有 API 的情况下访问您的数据(如文本编辑器)

您要存储大量二进制内容(图片或 mp3)

TL;博士

编程很少说“从不”或“总是”。那些说“数据库总是赢”“文件总是赢”的人可能只是不够了解。想想可能的行动(现在 + 未来),考虑两种方式,并选择最快 / 最有效的情况。就是这样。

9

文件处理系统和数据库管理系统的区别如下:

文件处理系统是在计算机硬盘中存储和管理文件的程序的集合。另一方面,数据库管理系统是能够创建和维护数据库的程序的集合。

文件处理系统具有较多的数据冗余,dbms 中的数据冗余较少。

文件处理系统在访问数据时提供的灵活性较小,而 dbms 在访问数据时具有更大的灵活性。

文件处理系统不提供数据一致性,而 dbms 通过规范化提供数据一致性。

文件处理系统不太复杂,而 dbms 更复杂。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(990)
count(*)=1时的SQL聚合函数 因此只能有一个值
上一篇
数据库连接在jupiter笔记本中工作 但不是气流
下一篇

相关推荐

  • 数据库网状模型:多模型数据库VS多个单独的数据库

    关于数据库网状模型的问题,在multimodel database中经常遇到,我正在研究需要图形数据库(存储原始数据)和文档数据库(从原始数据中提取报告)提供的功能的应用程序。我计划使用 neo4j 和 mongodb。我正在重新考虑并查看 orientDB。有一个多模型数据库比两个单独的数据库更好吗?我倾向于 neo4j 的原因是它的本机图形存储可能会派上用场,用于大型图形的内存局部性。…

    2022-12-29 13:27:26
    0 46 36
  • 数据库 vs文件系统存储

    数据库最终将数据存储在文件中,而文件系统也将数据存储在文件中。在这种情况下,DB 和 File System 之间有什么区别。它是以检索的方式还是其他方式?…

    2022-11-19 04:14:13
    0 91 25

发表评论

登录 后才能评论

评论列表(82条)