设为首页 加入收藏

TOP

7种数据库的详情分析(二)
2018-03-20 08:51:06 】 浏览:228
Tags:数据库 详情 分析

功能:数据文件存储格式为BSON,模式自由,整体架构与关系型数据库有对应关系,具有较好的高可用性和伸缩性,有插件式存储引擎,新版本默认是writedtiger存储引擎;

部署: 部署比较简答,下载软件,设置好配置文件即可启动服务;

使用:不支持SQL语句,使用与SQL对应的json方式管理数据库;

监控:有比较丰富的监控和性能命令,官方有比较完善的图形监控系统,但需要购买;

备份:支持冷备份和热备份,可以使用mongoexport/mongimport进行逻辑备份,也可以使用基于oplog的mongodump/mongorestore物理热备份;

高可用:MongoDB master-slave主从复制:在master节点上加 --master参数,从数据库加 -slave和-source参数,就可以实现同步,这种目前不建议;

ReplicaSets复制集,在mongodb 1.6之后,开发了新的 replicaset,着呢家了故障自动切换和自动修复成员节点,各个DB将数据一致,建议使用这种方式;可以测试读写分离和故障转移;

扩展:mongodb海量数据水平拆分,将数据分别存储在sharding各个节点上,构建出分布式集群。Sharding架构由 底层多个mongodb Shared Server,config水平拆分配置库config server,前端路由 route process,三部分构成。Sharding集群底层可以是mongodb单实例,也可以高可用的replicaSet复制集。

3、适用场景:

网站后台数据库:mongodb非常适合实话实说插入、更新与查询,并可以实时复制和高伸缩性,适合更新迭代快、需求变更多、以对象为主的网站应用;

小文件系统:对于json文件,二进制数据,适合用mongodb进行存储和查询

日志分析系统:对于数据量大的日志文件,IM会话消息记录,适合用mongodb来保存和查询;

缓存系统:mongodb数据库也会使用大量的内存,合理的设计,也可以作为缓存系统使用;不过目前缓存系统使用更多的方案是 memcached和redis。

4、选择注意:

Mongodb不适合的场景:

高度事务性的系统:即传统的OLTP业务,mongodb,乃至其他nosql,对事务性支持都不太好;

传统的统计分析应用:即传统的OLAP业务,需要高度优化的查询方式,mongodb支持不好;

使用SQL语句比较方便的业务:mongodb是json类型的查询方式,虽然也灵活,但不如用SQL方便,如果业务和适合SQL,则就不太合适mongodb了。

第六种武器:Redis数据库

4fd010fadf51d730800b64745403219b922199d3

1、定位:

开源、Linux平台、key-value键值型Nosql数据库

简单稳定,非常主流的、全数据in-momory、定位于“快”的键值型nosql数据库

2、特点:

功能: 命令执行速度非常看,读写性能可达10万/秒;数据结构是key-value类似字典的功能,可以键过期-缓存,发布订阅-消息系统,简单的事物功能;

部署: 用下载软件介质,编译安装的方式,可以很快完成数据库部署;服务启动redis-server,可以用默认配置、运行参数配置、配置文件启动,三种方式;redis在Linux平台支撑较好,官方没有Windows版本,微软维护了一个分支;

使用:用redis-cli客户端连接,一般用简单的 set ,get,del 进行数据管理; 在单实例redis的基础上,进行可以数据持久化,主从复制,高可用和分布式等功能;

监控:在命令行界面有一些常用的命令显示状态和性能,在图形界面方面,有开源监控工具来监控和记录数据库的状态,比如cachecloud;

备份:直接备份成物理问价的RDB持久化,基于AOF日志的实时AOF持久化

高可用:官方的 redis sentinel哨兵高可用集群

扩展:官方基于分配槽的 redis cluster分布式集群

3、适用场景:

缓存

基础消息队列系统

排行榜系统

计数器使用

社交网站的点赞、粉丝、下拉刷新等应用;

4、选择注意:

Redis的使用场景,是redis适合的解决的问题,也有不适合解决的问题。

从数据规模角度讲,小数据规模使用redis比较合适,大数据规模使用redis不合适;(大数据规模,在一定程度上,可以用SSDB替代redis使用);

从数据冷热角度看,热数据适合放在redis中,冷数据不适合放在redis中。

第七种武器:Hbase数据库

ff5b2727b9e82956361e78872c503678f835c27b

1、定位:开源、Linux平台、列存储nosql数据库

可用于海量数据存储、与Hadoop生态圈结合、定位于“大”的列存储nosql数据库

2、特点:

功能:命令执行速度非常看,读写性能可达10万/秒;数据结构是key-value类似字典的功能,可以键过期-缓存,发布订阅-消息系统,简单的事物功能;

部署:相对其他数据库,hbase的部署比较复杂,依赖Hadoop,zookeeper等组件,Hbase集群包括一个mater节点,多个regionServer,zookeeper管理所有regionServer,需要依次部署Hadoop、zookeeper之后,再部署HBASE集群;

使用:用redis-cli客户端连接,一般用简单的 set ,get,del 进行数据管理; 在单实例redis的基础上,进行可以数据持久化,主从复制,高可用和分布式等功能;

监控:在命令行界面有一些常用的命令显示状态和性能,在图形界面方面,有开源监控工具来监控和记录数据库的状态,比如cachecloud;

备份:Hbase一般用作海量数据的仓库,本身通过多层副本来保证数据安全性,不用进行专门的备份

高可用:HBASE集群基于Hadoop,需要依次部署Hadoop单机模式、集群模式、HA模式,通过Hadoop HA实现高可用;

扩展:HBASE以集群形式,依次是单机模式,伪分布模式,完全分布模式,底层基于HDFS,zookeeper可以很好地进行扩展;

3、适用场景:

两大用途:

用于简单数据写入和海量、结构简单数据查询的业务场景;

用于成为其他数据库备份和下沉的数据库;

4、选择注意:

Hbase不适合的场景:对数据分析需求高,需要能够用sql或者简单的MapReduce实现分析需求的业务场景,不适合用Hbase;

单表数据量,不超过千万时,使用Hbase,体现不出Hbase的优势,而且会比较慢,不适合用Hbase。

通过对上面数据库“七种”武器的描述,也可以看到目前常用数据库的使用脉络和选择顺序,对应一个业务,可以优先选择最流行的开源数据库——MySQL;如果出于稳定和商业版考虑,可以选择Oracle数据库,或者SQL Server数据库(与Windows体系结合);如果想用开源,有想要有足够的功能来应对各种场景,可以使用 postgresql数据库。这四种数据库,都是关系型数据库,可以很好地满足大多数业务场景,解决通用性问题。

对于一些特殊性问题,尤其是想要在扩展性方面有比较高的要求,可以考虑nosql数据库。Mongodb数据库,介于关系型数据库和非关系型数据库之间,兼具两者的特点,是非常流行的文档型nosql数据库;redis定位于内存型键值nosql数据库;hbase是

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇SQLite3源码学习之test_vfs的共享.. 下一篇PL/SQLDeveloper启动后报错:Init..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目