1.MongoDB

Mongo是一个高性能,开源,面向集合的无模式文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。面向集合, 意思是数据被分组到若干集合,这些集合称作聚集(collections). 在数据库里每个聚集有一个唯一的名字,可以包含无限个文档. 聚集是RDBMS中表的同义词,区别是聚集不需要进行模式定义.模式自由, 意思是数据库并不需要知道你将存入到聚集中的文档的任何结构信息.实际上,你可以在同一个聚集中存储不同结构的文档.文档型, 意思是我们存储的数据是键-值对的集合,键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档. 我们把这个数据格式称作 “[BSON]” 即 “Binary Serialized dOcument Notation”.
1)MongoDB特点:
  • 面向文档存储(类JSON数据模式简单而强大)
Ø  动态查询
Ø  全索引支持,扩展到内部对象和内嵌数组
Ø  查询记录分析
Ø  快速,就地更新
Ø  高效存储二进制大对象 (比如照片和视频)
Ø  复制和故障切换支持
Ø  Auto- Sharding自动分片支持云级扩展性
Ø  MapReduce 支持复杂聚合
2)适用场合:
Ø  网站数据:Mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
  • 缓存:由于性能很高,Mongo也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源过载。
  • 大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
  • 高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对MapReduce引擎的内置支持。
  • 用于对象及JSON数据的存储:Mongo的BSON数据格式非常适合文档化格式的存储及查询。
3)不适用场合:
  • 高度事务性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
  • 传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
MongoDB官方网址:http://www.mongodb.org/。目前MongoDB有很多PHP编写的管理工具,如RockMongo,Opricot,phpMoAdmin。
 2.PostgreSQL
最早是由美国加州大学伯克利分校开发的,开始只是作为一个演示系统发表,但是随着时间的推移,逐步分发,得到很多实际的应用,才逐步流行起来。如果很粗略地观察PostgreSQL,会觉得这个数据库系统和其它数据库很类似。因为 PostgreSQL 使用 SQL 语言来在执行资料的查询。这些资料通过连外键联系在一起,以一系列表格的形式存在。PostgreSQL 相对于竞争者的主要优势,主要的特征为可编程性:对于使用数据库资料的实际应用,PostgreSQL 让开发与使用的工作,变得更加容易。SQL 数据在"平面表格"中存储简单的数据类型,需要用户使用查询把有关的信息收集在一起。这与应用和用户利用数据自身的方式相对立,典型的使用带有丰富数据类型的高级语言,在其中所有有关的数据作为它自己的一个完整单元来操作。典型的称呼为记录或对象(依据各自语言)。转换来自 SQL 世界的信息到面向对象编程世界体现得很困难,因为两者有非常不同的数据组织的模型。工业界把这个问题称为阻抗不匹配:从一个模型映射到另一个要花费项目开发者 40% 的时间。一些映射解决方案,典型的称为对象-关系映射,致力于这个问题,但是它们花费很多并有自身的问题,导致糟糕的性能或强制所有的数据访问通过映射所支持的一种语言来进行。PostgreSQL 可以直接在数据库中解决很多这种问题。PostgreSQL 允许用户定义基于正规的 SQL 类型的新类型,允许数据库自身理解复杂数据。例如,你可以定义一个 address 来组合一些事物如街道编号、城市和国度的字符串。从这一点上你可以轻易的建立把保存地址的所需要的所有字段包含在一个单一行列中的表。
PostgreSQL的技术特点:
Ø  支持SQL。作为关系数据库,它支持SQL89标准也支持SQL92大部分功能。
Ø  有丰富的数据类型。许多数据类型是一些商业数据库都没有提供的。
Ø  面向对象。它包含了一些面向对象的技术,如继承和类。
Ø  支持大数据库,它不同于一般的桌面数据库,能够支持几乎不受限制大小的数据库,而且性能稳定。
Ø  5. 方便集成web,提供一些接口方便 PHP,Perl等语言操作数据库。
Ø  6. 事务处理。相对一些其他免费数据库如MySQL,他提供了事务处理,可以满足一些商业领域的数据需要。
Ø  7. PostgreSQL运行速度低于MySQL。因为MySQL使用了线程,而PostgreSQL使用的是进程。在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。
PostgreSQL官方网址:http://www.postgresql.org/。PostgreSQL可使用Navicat Lite管理工具
 

3.Firebird

2000年7月,Borland(即现在的Inprise)公司公布了其数据库产品Interbase的源代码。Firebird数据库就是从该数据库中派生出来的。当时,Interbase是与客户/服务器版本的Delphi产品捆绑在一些销售的。现在,Interbase已经变成了一只开放源码中的“ 火鸟”。
Firebird的技术特点:
Firebird相对MySQL和PostgreSQL来说比较小,其RPM版本只有3.0MB。这也使其可以称得上是理想的“嵌入式数据库”,可用于与其它应用程序服务器和应用程序捆绑。Firebird具有大部分成熟数据库所具有的功能,比如支持存储过程、SQL兼容等。如果用户有使用DB2或 PostgreSQL的经验,就会发现Firebird与它们的语法非常相似,数据类型和数据处理方式也很类似。 Firebird的设计思想是小型、快速和最小化的管理。这对于需要一个数据库用于存储数据,但又不想花太多时间来调整数据性能的开发人员很适用。实际上在很多情况下,我们并不需要存储程序或复杂的表之间的关联。这时会发现Firebird在大小和功能之间找到了一个理想的平衡点。
Firebird的官方网址:http://www.firebirdsql.org/。

4.SQLite

SQLite 是 D. Richard Hipp 用 C 语言编写的开源嵌入式数据库引擎。它是完全独立的,不具有外部依赖性。它是作为 PHP V4.3 中的一个选项引入的,构建在 PHP V5 中。SQLite 支持多数 SQL92 标准,可以在所有主要的操作系统上运行,并且支持大多数计算机语言。SQLite 还非常健壮。其创建者保守地估计 SQLite 可以处理每天负担多达 100,00 次点击率的 Web 站点,并且 SQLite 有时候可以处理 10 倍于上述数字的负载。
SQLite的技术特点:
SQLite对SQL92 标准的支持包括索引、限制、触发和查看。SQLite不支持外键限制,但支持原子的、一致的、独立和持久 (ACID) 的事务(后面会提供有关 ACID 的更多信息)。这意味着事务是原子的,因为它们要么完全执行,要么根本不执行。事务也是一致的,因为在不一致的状态中,该数据库从未被保留。事务还是独立的,所以,如果在同一时间在同一数据库上有两个执行操作的事务,那么这两个事务是互不干扰的。而且事务是持久性的,所以,该数据库能够在崩溃和断电时幸免于难,不会丢失数据或损坏。SQLite 通过数据库级上的独占性和共享锁定来实现独立事务处理。这意味着当多个进程和线程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线程向数据库执行写入操作之前,必须获得独占锁定。在发出独占锁定后,其他的读或写操作将不会再发生。
SQLite官方主页:http://www.sqlite.org/。SQLite也可以使用Navicat Lite工具

5.Berkeley DB

像MySQL这类基于C/S结构的关系型数据库系统虽然代表着目前数据库应用的主流,但却并不能满足所有应用场合的需要。有时我们需要的可能只是一个简单的基于磁盘文件的数据库系统。这样不仅可以避免安装庞大的数据库服务器,而且还可以简化数据库应用程序的设计。Berkeley DB正是基于这样的思想提出来的。
Berkeley DB的技术特点:
Berkeley DB是一个开放源代码的内嵌式数据库管理系统,能够为应用程序提供高性能的数据管理服务。应用它程序员只需要调用一些简单的API就可以完成对数据的访问和管理。与常用的数据库管理系统(如MySQL和Oracle等)有所不同,在Berkeley DB中并没有数据库服务器的概念。应用程序不需要事先同数据库服务建立起网络连接,而是通过内嵌在程序中的Berkeley DB函数库来完成对数据的保存、查询、修改和删除等操作。
Berkeley DB为许多编程语言提供了实用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP等。所有同数据库相关的操作都由 Berkeley DB函数库负责统一完成。这样无论是系统中的多个进程,或者是相同进程中的多个线程,都可以在同一时间调用访问数据库的函数。而底层的数据加锁、事务日志 和存储管理等都在Berkeley DB函数库中实现。它们对应用程序来讲是完全透明的。俗话说:“麻雀虽小五脏俱全。”Berkeley DB函数库本身虽然只有300KB左右,但却能够用来管理多达256TB的数据,并且在许多方面的性能还能够同商业级的数据库系统相抗衡。就拿对数据的并发操作来说,Berkeley DB能够很轻松地应付几千个用户同时访问同一个数据库的情况。此外,如果想在资源受限的嵌入式系统上进行数据库管理,Berkeley DB可能就是惟一正确的选择了。
Berkeley DB作为一种嵌入式数据库系统在许多方面有着独特的优势。首先,由于其应用程序和数据库管理系统运行在相同的进程空间当中,进行数据操作时可以避免繁琐的 进程间通信,因此耗费在通信上的开销自然也就降低到了极低程度。其次,Berkeley DB使用简单的函数调用接口来完成所有的数据库操作,而不是在数据库系统中经常用到的SQL语言。这样就避免了对结构化查询语言进行解析和处理所需的开销。
各种数据库选型综合性分析:
开源数据库
主要特性
性能
学习难度
发展趋势
MongoDB
面向集合存储,易存储对象类型的数据,模式自由,易部署,动态查询,完整的索引支持,查询监视,复制及自动故障转移等特性
MongoDB读写效率高于Mysql,缺点是占用的磁盘空间很大,这是因为它占用的磁盘空间是预分配的
一般
NOSQL的主流,社区活跃,有很好的发展性。目前全球最大的分类信息网站Craigslist,全球最大的互动娱乐软件开发商ElectronicArtsInc都使用mongoDB
PostgreSQL
支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、多版本并发控制。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言。
PostgreSQL适合 大量数据,密集运算,重型负载应用,在大数据量情况下性能稳定
较难
具有传统商业数据库系统的功能,同时又含有将在下一代 DBMS 系统的使用的增强特性。PostgreSQL 是自由免费的,有着活跃的志愿者队伍。巴斯福,世界上最大的化工公司,使用PostgreSQL 为美国农业综合业电子商务网站存储数据。
Firebird
语法和DB2、PostgreSQL很相似,具有跨平台、高并发、高性能等特点,被很多应用系统采用。它非常小,适合轻量级嵌入式数据库
支持C/S模式,可以作为内嵌数据库,性能方面优于Access数据库
容易
Firebird可应用于各种领域,胜任关键性任务。其独创的“多代版本体系”使得系统短小精悍,高效健壮。Firebird 3.0发布后,Jim Starkey会在Firebird中嵌入Java虚拟机来支持触发器、存储过程、用户自定义函数。可以预见,在Jim Starkey的领导下,未来的Firebird会越飞越高
SQLite
对SQL92 标准的支持包括索引、限制、触发和查看。SQLite不支持外键限制,支持事务,不需要配置,不需要安装,也不需要管理员,最大支持数据库到2T
SQLite是文件数据库,它的写操作的性能比Mysql差
容易
从2000年,经过多年的发展,直到今天已经成为最流行的嵌入式数据库,包括Google在内的公司在其桌面软件中亦使用 sqlite 存储用户数据。
Berkeley DB
直接链接到应用程序中,数据库操作并不要求进程间通讯,为多种编程语言提供了API接口,所有的数据库操作都在程序库内部发生
Mysql后台就是使用Berkeley DB实现的,它比Mysql快N倍
容易
2.0版本或以上的Berkeley DB由Sleepycat公司开发,2006年Sleepycat公司被Oracle 公司收购,继续提升Berkeley DB在软件行业的声誉
 
总结:我只列举了这几种主流开源数据库,对于IBM提供的DB2 Express-C、ORACLE提供的Oracle XE免费数据库功能上还是受到一些限制,在这里没有列举,mysql不完全免费也没有说明。可视化选型一种开源数据库,我个人更倾向于PostgreSQL和Mongodb,这是因为PostgreSQL功能强大支持可编程性,支持很多数据类型,还可以自定义数据类型存储GIS图元,支持大数据,虽然它的连接采用进程因而速度比不上Mysql快,但是稳定性比Mysql好。PostgreSQL网上资料很多,社区也比较活跃。Mongodb面向集合,无模式的,这种主要可以做到NOSQL,集合就相当于关系数据库中的表。适合实时数据存储,也可用到可视化中。Firebird则更适合做嵌入式的数据库,网上的资料不是很多。SQLite是嵌入式数据库引擎,更适合做CMS (内容管理系统)。Berkeley DB现在属于Oracle旗下,2.0版本以上就不能自由商业应用,而且它的使用不需要数据库连接,数据库操作都是调用它的函数库,不太适合集成到可视化。

可视化免费数据库选型相关推荐

  1. “大型票务系统”和“实物电商系统”的数据库选型

    讨论请移步至:http://www.zhiliaotech.com/ideajam/idea/detail/423 相关文章: <今天你买到票了吗?--从铁道部12306.cn站点漫谈电子商务站 ...

  2. 工行“去O”数据库选型与分布式架构设计

    魏亚东 工商银行软件开发中心经理 中国工商银行软件开发中心三级经理,资深架构师.杭州研发部数据库专家牵头人和开发中心安全团队成员,负责技术管理.数据库和安全相关工作. 2009年加入中国工商银行软件开 ...

  3. 安卓学习专栏——查看安卓数据库,用navicat premium与sqlitestudio可视化查看数据库(图文保姆级)

    步骤 系列文章 前言 1.找到数据库文件 1.1打开Device File Explerer 文件查找工具 1.2找到数据库资源路径 1.3保存在文件夹 2.navicat premium可视化 2. ...

  4. 精选实践 | 爱奇艺实用数据库选型树:不同场景如何快速选择数据库?

    作者 | 郭磊涛 爱奇艺数据库和中间件负责人 TiDB User Group Ambassador 来源 | 授权转载自AskTUG 本文系 TUG 线下活动 "不同业务场景下的数据库技术选 ...

  5. 数据库选型绕不开“CAP定理”是什么

    这两年,不管是传统数据库厂商,还是云计算大厂,都在主推"云数据库",对于云数据库概念,不同人有不同理解,可以说是众说纷纭.那么,到底什么是云数据库?数据库从本地迁移到云上,就是云数 ...

  6. mysql 多线程_数据库选型之MySQL(多线程并发)

    本博客记录作者在工作与研究中所经历的点滴,一方面给自己的工作与生活留下印记,另一方面若是能对大家有所帮助,则幸甚至哉矣! 简介 鉴于高频中心库task部分占用机器较多,为节省成本,调研数据库或缓存.在 ...

  7. 爱奇艺的数据库选型大法,实用不纠结!

    作者:郭磊涛 https://dbaplus.cn/news-160-2847-1.html 我们进行数据库选型的时候要考虑哪些问题?有哪些需求?待选用的数据库是否和需求对得上?是不是直接可以拿来用? ...

  8. 工行分布式数据库选型与大规模容器化实践

    来自:DBAplus社群 本文根据顾龚磊老师在[2019 DAMS中国数据智能管理峰会]现场演讲内容整理而成. 讲师介绍 顾龚磊,工商银行开源数据库运维牵头人,带领团队管理上千个MySQL节点的日常维 ...

  9. mysql百万级性能瓶颈-数据库选型

    项目中使用了mysql数据库,但数据量增长太快,不久到了百万级,很快又到表到了千万级,尝试了各种优化方式,最终效果仍难达到秒级响应,那么引发了我关于数据库选型到一些思考. 1.mysql的单表性能瓶颈 ...

最新文章

  1. Silverlight 2 Beta 1, IE 8 Beta 1, ASP.NET MVC 预览版2 可以下载了 - 思归呓语 - 博客堂
  2. [Js-Spring]Spring与IoC(控制反转,Inversion of Control)
  3. python库整理:collections.defaultdict
  4. 数据中心虚拟化的8大好处
  5. 2019蓝桥杯省赛---java---B---6(特别数的和)
  6. ISV客户博客系列:iVoteSports通过Windows Azure扩展它的面向棒球的移动游戏应用程序...
  7. spring AOP(二) 相关类或接口
  8. 【C语言】VSCode配置C语言开发环境(详细图文)
  9. oracel vm 安装windows server 2012报错Error 0x000000C4
  10. 为什么RTC晶振频率是32768Hz
  11. 双线 路由表 linux,linux双线ip设置(不需额外增加路由表)
  12. 如果楼市崩盘,我们怎么活?
  13. JQuery 拖拽元素,并移动其他元素位置
  14. 基于tiny4412的u-boot移植(二)_ git clone
  15. 《管理学》第一章 管理与管理学
  16. 花了5000元改了一个带触摸板的小红点键盘
  17. 实时音视频通信(RTC)中必须要了解的三种关键算法
  18. 微信小程序商城优势在什么地方
  19. 项目起名的一些小单词
  20. 移动叔叔工具箱android,移动叔叔工具箱

热门文章

  1. 使用bce-bos-uploader上传附件,附件超出限制大小操作
  2. 计算机考研402,考研402分经验谈
  3. Android专项测试之崩溃测试(CPU)
  4. oracle算加权平均的函数,怎样在Excel表中用函数算加权平均数?《电子表格加权平均函数》...
  5. 高等数学复习之六(微分方程)
  6. Audition Au制作左右双声道以及导出
  7. HTML一键打包APK工具_安卓app封装_H5打包安卓APP
  8. 百度大脑开放日召开,安全生产智能视频监控解决方案用AI助力生产安全防控
  9. STM32F103ZET6中文数据手册
  10. PDF功能实现1——Java实现动态页面在后台生成PDF文件