关闭

数据库产品如何选型

发表于:2014-8-18 09:34

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:dingzihan    来源:51Testing软件测试网采编

  数据库产品如何选型:
  一.软件功能对比
  二.成本考虑
  三.满足业务场景
  四.平衡各种资源
  oraclemysql,nosql选型
  一.是否满足业务场景,各DB系统软件功能对比
  1.功能对比
  oracle功能是大而全并且非常完善,无论是锁定机制还是事物支持,无论是内置函数还是外部可扩展功能,无论OLTP和OLAP都能很好的支撑。
  mysql作为开源数据的代表,得到了广泛的应用,关系型数据库的常用功能也全面覆盖到了,但mysql的缺失大表的hash join功能,这让他在OLAP发展受阻。
  nosql主用用于K/V环境查询的场景,在事务以及Join方面都未支持,能支持多维度复杂过滤的产品比较少。
  从功能角度比较 oracle > mysql > nosql
  2.性能强弱
  2.1 write性能
  Oracle需要记录Redo Log且保证每次事务都fsync到物理磁盘以保证事务安全,属于连续写;数据的写入大多是在内存中完成,后台进程进行内存到磁盘的定期批量刷新,以随机写为主。MySQL InnoDB引擎与Oracle类似;MyISAM引擎无事务所以没有事务日志到磁盘的fsync问题,但由于其表锁的原因,并发较弱。从总体使用经验来看       和Oracle相差不大。
  NoSQL在数据存储及日志记录方面的架构及实现优化,使之在写入性能方面较传统数据库有较大优势。
  总的来说write性能 NoSQL > Oracle = Mysql
  2.2 简单查询
  Oracle在高并发场景下,由于其在事务控制实现方面的优势,以及多进程的机制,显示出了相对明显的优势。
  MySQL在并发数不是太高的前提下,如16,32个并发场景下,相对于Oracle没有显示出弱势,甚至部分存储引擎下还有一些优势,但是随着并发数        的增加,就逐步体现出了与Oracle的差距,这与其基于线程的机制也有一定关系。
  NoSQL大部分时候的简单查询性能都不如前二者
  所以简单查询的性能 Oracle > Mysql > Nosql
  2.3 复杂查询
  Oracle统计信息涉及的方面非常多,优化器相对于MySQL来说也先进很多,再加上对Join方式的全面支持,无论是从功能还是性能角度来说,多表 Join都是Oracle的优势所在。
  MySQL其查询优化器所能参考的统计信息相对较少,优化器深度也比Oracle少很多,所以在多表Join的时候出现执行计划异常并不少见。此外,不        支持 Hash Join 的天生缺陷也让其 Join 能力大打折扣。
  NoSQL不支持Join,不具可比性,无疑是最弱的
  索引复杂查询性能 Oracle > Mysql > Nosql
  3.扩展能力
  Oracle由于极高的一致性要求,采用share Everything架构,造成架构上不少限制,使其扩展陈本较高
  Mysql的Replication特性对一致性要求较弱,使其架构很灵活,但slave的延迟是个大问题。
  Nosql大都支持分布式部署,具有非常好的scale out能力
  所以扩展能力 Nosql > Mysql > Oracle
  4.商业支持
  NoSQL产品目前有商业支持的很少,MySQL的本地化商业支持选择并不多,Oracle方面的商业支持无论是大型公司还是初创团队,选择性相对比较广泛
  所以在商业支持方面:Oracle > Mysql > Nosql
  5.软件可维护性
  这一点一直是运维人最为关注的因素,毕竟任何一个软件系统都是需要后期维护的。
  NoSQL 产品由于发展时间相对较短,对于可维护性角度的支持相对要少很多,虽然大多提供了一些相应的小工具,但总体来说都还是过于简单了些,所以这方面和相对成熟的MySQL以及Oracle相比较要弱。而Oracle为后期维护所做的工作无疑是最为全面,无论是运行状态的跟踪,还是基础的备份恢复等,都很完善。
  所以在可维护性角度方面:Oracle > Mysql > Nosql
  二.成本考虑
  1.软件成本
  这个没有争议:Oracle > Mysql = Nosql
  2.运维成本与团队管理水平
  维护的服务器数量、耗电、自动化工具和人员配备数量
  系统是否在团队的可控范围之内,出现性能、事故,团队要有能力解决
  3.人才环境
  Oracle发展几十年,具有充足的人才储备,活跃的社区环境。
  MySQL开源数据库的王者,社区活跃,虽然人才总量常常供不应求,但总体还是处于良性状态。
  NoSQL新技术,产品众多,社区活跃度远不如前面二者,处于人才极度匮乏状态
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号