问题1:数据库选型

来源:互联网 发布:机房网络应急预案 编辑:程序博客网 时间:2024/04/29 07:08
  1. 关系数据库
    把数据组织为行,存储在表上,是sql的基础。作为几十年的老产品,每个技术人员必须掌握的技术。关系数据库最大优点是实现ACID(原子性,一致性,隔离性,持久性)原则,一般要求强事务类型业务,都要使用关系数据库存储。典型代表,mysql(开源,要求dba技能高),oracle(功能强悍,收费超级贵), ms sql server(易用,简单,收费)。

  2. 键值数据库
    一般是作为缓存层,部分特殊应用可以持久化。Kv数据库典型代表是memcached和redis。Memcached只能做缓存使用,功能简单。redis采用简单动态字符串(SDS)类型,可以做到持久化,例如,新浪微博保存用户关系表,新信息推送都是使用redis存储,没有使用后台关系数据库,目前版本超过150GB单一实例会存在问题。目前从房多多业务来看,配置表,路由表、大并发业务必须加入到缓存中,建议使用redis 3.0。3.0版本官方自带高可用解决方案。

  3. 文档类型db
    存储使用json格式,适合爬虫,图片,小文件,导流等新型业务。mongodb是代表产品,可以做到分片(shanding),路由,自动切换等高可用。

  4. 列式储存
    数据存储是按照列存储,区别在于关系数据库是按照行存储。列式db在大批量读取性能高,写入和普通db没有区别,例如,Infobright拥有25:1倍的压缩比存储,这可以对历史表进行压缩,单个实例可以支撑30TB左右。这非常适合数据仓库。开源社区有很多限制,收费版本功能强大。其他列式数据库有SAP HANA、Sybase IQ。

  5. 大数据数据库
    Hadoop/MapReduce和Spark最适合的都是做离线型的数据分析,但Hadoop特别适合是单次分析的数据量“很大”的情景,而Spark则适用于数据量不是很大的情景。这儿所说的“很大”,是相对于整个集群中的内存容量而言的,因为Spark是需要将数据保留在内存中。HBase的技术特点上看,它特别适用于简单数据写入(如“消息类”应用)和海量、结构简单数据的查询(如“详单类”应用)。HBase的另一个用途是作为MapReduce的后台数据源,以支撑离线分析型应用。
0 0
原创粉丝点击