文件系统和数据库的对比

文件系统和数据库的对比

本文主要从单机系统的角度出发,对比通用的文件系统和数据库技术。想到哪里就写到哪里,遗漏的地方应该很多。

共同点:

  • 同属于系统软件或底层软件
  • 都是用来存储和访问数据的
  • 都有着悠久的研究开发历史
  • 都有成熟的标准或规范。这既有利于开发可移植的程序,又不利于开发创新的系统,特别是分布式系统。
  • 实现技术上也有很多的共同点
    • 大都采用C/C++这样更底层的语言
    • 都需要保证数据的一致性,特别的,不同程度的支持事务
    • 都有Block或Page或Allocation unit或Extent这样的概念
    • 都用到Buffer cache、LRU、Group commit之类的概念和算法
    • 都要针对各种负载做IO优化

不同点:

  • 数据库对事务的支持要强很多,文件系统可以只保证元数据的一致性
  • 数据库有不同级别的一致性,以隔离级别的形式体现出来
  • 数据库可以有REDO和UNDO日志,文件系统一般只用REDO
  • 数据库的事务可以很长,文件系统的事务很短
  • 数据库的事务事先无法确定,是用户输入的,文件系统的事务可以事先确定,种类明确
  • 数据库是用户态实现的,文件系统一般是内核态实现的。因此,前者更容易做到跨OS平台
  • 数据库的访问接口通常是非过程化的SQL语言,文件系统的则是API。二者对应的主流标准分别是SQL和POSIX
  • 数据库对死锁可以做检测,文件系统则需要避免死锁

联系点:

  • 数据库系统经常依赖于文件系统作为其最底层的存储,也可能会实现一些文件系统的功能
  • 文件系统可以为数据库这种特殊的应用做专门的优化
  • 文件系统可以被当做简单的数据库使用(例如VSAM),数据库也可以暴露出NFS(例如Oracle)
  • 文件系统可能会用到一些简单的数据库功能(例如把符号链接当KV,实现简单的DB功能,或直接用一个小型的DBMS)
时间: 2024-10-10 05:08:56

文件系统和数据库的对比的相关文章

HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比

HBase.Redis.MongoDB.Couchbase.LevelDB主流 NoSQL 数据库的对比 最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.Redis.MongoDB.Couchbase.LevelDB 五款较主流的数据库产品中,本文将主要对它们进行分析对比. 鉴于缺乏项目中的实战经验沉淀,本文内容和观点主要还是从各平台资料搜罗汇总,

MongoDB和关系型数据库简单对比

MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便. MongoDB 工作在收集和文件的概念. 数据库:数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文件.一个单一的MongoDB服务器通常有多个数据库. 集合:集合是一组MongoDB的文档.它相当于一个RDBMS表.收集存在于一个单一的数据库.集合不执行模式.集合内的文档可以有不同的领域.通常情况下,一个集合中的所有文件是相同或相关的目的. 文档:文档是一组键 - 值对. 文件动态模式.动态模

mysql之间数据库结构对比

适应环境:项目中对产品升级,设计到两个版本数据库结构不同 使用工具:Navicat 1.准备两个版本的数据库 2.打开工具Navicat 3.分别连接两个数据库 4.点击"工具-结构同步" 5.常规中选择两个连接的数据库进行对比,已左边数据库为模板生成不同 6.将比较出的不同文件导出,导入到新版的数据库中,两版本的数据库结构即同步完成 7.结构同步后进行数据库数据同步 8.升级完成

两个数据库比较 对比视图存储过程及表结构差异

两个数据库比较 对比视图存储过程及表结构差异 一.视图和存储过程比较 [原理]利用系统表“sysobjects"和系统表“syscomments”,将数据库中的视图和存储过程进行对比.系统表"sysobjects"之前有详细介绍过,有兴趣可以看看:SQL Server系统表sysobjects介绍与使用 如果你看到这段文字,说明您正使用RSS阅读或转自<一棵树-博客园>,原文地址:http://www.cnblogs.com/atree/p/db-compare-

分布式数据库中间件对比总结

摘要:目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的.所以总结一个关于中间件比较的系列,希望可以对大家有帮助. 分布式数据库中间件对比总结(1) 目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的.所以总结一个关于中间件比较的系列,希望可以对大家有帮助. 1. 什么是中间件 传统的架构模式就是 应用连接数据库直接对数据进行访问,这种架构特点就是简单方便. 但是随着目前数据量不断的增大我们就遇到了问题:

几款主流 NoSql 数据库的对比

最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.Redis.MongoDB.Couchbase.LevelDB 五款较主流的数据库产品中,本文将主要对它们进行分析对比. 鉴于缺乏项目中的实战经验沉淀,本文内容和观点主要还是从各平台资料搜罗汇总,也不会有太多深入或底层原理探讨. 本文所引用的资料来源将示于本文尾部.所汇总的内容仅供参考,若有异议望指正

转:几款主流 NoSql 数据库的对比

转自:http://www.cnblogs.com/vajoy/p/5471308.html 最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.Redis.MongoDB.Couchbase.LevelDB 五款较主流的数据库产品中,本文将主要对它们进行分析对比. 鉴于缺乏项目中的实战经验沉淀,本文内容和观点主要还是从各平台资料搜罗汇总,也不会有太多

十种NoSQL数据库以及对比

 虽然NoSQL流行语火起来才短短一年的时间,但是不可否认,现在已经开始了第二代运动.尽管早期的堆栈代码只能算是一种实验,然而现在的系统已经更加的成熟.稳定.不过现在也面临着一个严酷的事实:技术越来越成熟--以至于原来很好的NoSQL数据存储不得不进行重写,也有少数人认为这就是所谓的2.0版本.这里列出一些比较知名的工具,可以为大数据建立快速.可扩展的存储库. 1. Casssandra Cassandra最初由Facebook开发,后来成了Apache开源项目,它是一个网络社交云计算方面理

postgresql数据库和mysql数据库的对比分析

1.Posgresql是进程模式,多进程,单线程,类似的还有Oracle.而MYSQL采用的是线程模式,单进程,多线程,对此,大家在运行数据库的时候可以查看任务管理器,SQL Server也是如此. 众所周知,多进程,进程模式,利用CPU时间片轮转,可以利用更充分CPU,因此光拿多核单台机器上来说,他明显在支持高并发性能方面更胜一筹.而线程模式呢,开一个线程显然要比开一个进程所耗费的资源要少,另外在不同线程之间的环境转换和访问公用的存储区域,显然比在不同进程之间要快,所以它的处理速度要快,对资源