如何正确选择开源数据库?你需要这的5个技巧

你或许会遇到需要选择合适的开源数据库的情况。但这无论对于开源方面的老手或是新手,都是一项艰巨的任务。希望通过这篇文章能够向大家分享这方面的一些技巧。

你或许会遇到需要选择合适的开源数据库的情况。但这无论对于开源方面的老手或是新手,都是一项艰巨的任务。在过去的几年中,采用开源技术的企业越来越多。面对这样的趋势,众多开源应用公司都纷纷承诺自己提供的解决方案能够各种问题、适应各种负载。但这些承诺不能轻信,在开源应用上的选择是重要而艰难的,尤其是数据库这种关键的应用。凭借我在 Percona 和其它公司担任 IT 专家的经验,我很幸运能够指导其他人在开源技术的选择上做出正确的决策,因为需要考虑的重要因素太多了。希望通过这篇文章能够向大家分享这方面的一些技巧。

有一个明确的目标

这一点看似简单,但在和很多人聊过 MySQL、MongoDB、PostgreSQL 之后,我觉得这一点才是最重要的。面对繁杂的开源数据库,更需要明确自己的目标。无论这个数据库是作为开发用的标准化数据库后端,抑或是用于替换遗留代码中的原有数据库,这都是一个明确的目标。目标一旦确定,就可以集中精力与开源软件的提供方商讨更多细节了。

了解你的工作负载

尽管开源数据库技术的功能越来越丰富,但这些新加入的功能都不太具有普适性。譬如 MongoDB 新增了事务的支持、MySQL 新增了 JSON 存储的功能等等。目前开源数据库的普遍趋势是不断加入新的功能,但很多人的误区却在于没有选择最适合的工具来完成自己的工作 —— 这样的人或许是一个自大的开发者,又或许是一个视野狭窄的主管 —— 最终导致公司业务上的损失。最致命的是,在业务初期,使用了不适合的工具往往也可以顺利地完成任务,但随着业务的增长,很快就会到达瓶颈,尽管这个时候还可以替换更合适的工具,但成本就比较高了。例如,如果你需要的是数据分析仓库,关系数据库可能不是一个适合的选择;如果你处理事务的应用要求严格的数据完整性和一致性,就不要考虑 NoSQL 了。

不要重新发明轮子

在过去的数十年,开源数据库技术迅速发展壮大。开源数据库从新生,到受到质疑,再到受到认可,现在已经成为很多企业生产环境的数据库。企业不再需要担心选择开源数据库技术会产生风险,因为开源数据库通常都有活跃的社区,可以为越来越多的初创公司、中型企业甚至 500 强公司提供开源数据库领域的支持和第三方工具。Battery Ventures 是一家专注于技术的投资公司,最近推出了一个用于跟踪最受欢迎开源项目的 BOSS 指数 。它提供了对一些被广泛采用的开源项目和活跃的开源项目的详细情况。其中,数据库技术毫无悬念地占据了榜单的主导地位,在前十位之中占了一半。这个 BOSS 指数对于刚接触开源数据库领域的人来说,这是一个很好的切入点。当然,开源技术的提供者也会针对很多常见的典型问题给出对应的解决方案。我认为,你想要做的事情很可能已经有人解决过了。即使这些先行者的解决方案不一定完全契合你的需求,但也可以从他们成功或失败的案例中根据你自己的需求修改得出合适的解决方案。如果你采用了一个最前沿的技术,这就是你探索的好机会了。如果你的工作负载刚好适合新的开源数据库技术,放胆去尝试吧。第一个吃螃蟹的人总是会得到意外的挑战和收获。

先从简单开始

你的数据库实际上需要达到多少个 9 的可用性?对许多公司来说,“实现高可用性”仅仅只是一个模糊的目标。当然,最常见的答案都会是“它是关键应用,我们无论多短的停机时间都是无法忍受的”。数据库环境越复杂,管理的难度就越大,成本也会越高。理论上你总可以将数据库的可用性提得更高,但代价将会是大大增加的管理难度和性能下降。所以,先从简单开始,直到有需要时再逐步扩展。
例如,Booking.com 是一个有名的旅游预订网站。但少有人知的是,它使用 MySQL 作为数据库后端。 Booking.com 高级系统架构师 Nicolai Plum 曾经发表过一次演讲,讲述了他们公司使用 MySQL 数据库的历程。其中一个重点就是,在初始阶段数据库可以被配置得很简单,然后逐渐变得复杂。对于早期的数据库需求,一个简单的主从架构就足够了,但随着工作负载和数据量的增加,数据库引入了负载均衡、多个读取副本,还使用 Hadoop 进行分析。尽管如此,早期的架构仍然是非常简单的。

有疑问,找专家

如果你仍然不确定数据库选择的是否合适,可以在论坛、网站或者与软件的提供者处商讨。研究各种开源数据库是否满足自己的需求是一件很有意义的事,因为总会发现你从不知道的技术。而开源社区就是分享这些信息的地方。
当你接触到开源软件和软件提供者时,有一件重要的事情需要注意。很多公司都有开放的核心业务模式,鼓励采用他们的数据库软件。你可以只接受他们的部分建议和指导,然后用你自己的能力去研究和探索替代方案。

总结

选择正确的开源数据库是一个重要的过程。很多时候,人们都会在真正理解需求之前就做出决定,这是本末倒置的。

原文地址:https://www.cnblogs.com/LILi666/p/10049149.html

时间: 2024-10-08 14:07:03

如何正确选择开源数据库?你需要这的5个技巧的相关文章

【转】 MySQL与PostgreSQL:该选择哪个开源数据库?哪一个更好?

转载地址:http://www.infoq.com/cn/news/2013/12/mysql-vs-postgresql 如果打算为项目选择一款免费.开源的数据库,那么你可能会在MySQL与PostgreSQL之间犹豫不定.MySQL与PostgreSQL都是 免费.开源.强大.且功能丰富的数据库.你主要的问题可能是:哪一个才是最好的开源数据库,MySQL还是PostgreSQL呢?该选择哪一个开源数据 库呢? 在选择数据库时,你所做的是个长期的决策,因为后面如果再改变决定将是非常困难且代价高

PHP 还是 ASP.NET:我做了正确选择么?

PHP 还是 ASP.NET:我做了正确选择么? 在2001年, 我曾面临一个选择,去学PHP或者ASP.NET. 我最终选了后者,但我依然怀疑这个选择其实不好. 那是2001年,我面临一个选择. 原文链接:http://bbs.tianya.cn/list-112764-1.shtml 设想一下,如果你可以回到过去,改写你的技术生涯.哪些重要的时刻,你会想改变?在2001年,我曾作为一家成功的网站咨询公司的共同合伙人,去处理有关 Classic ASP的事情.当时,这些事情是很了不起的.我们是

.Net开源数据库设计工具Mr.E For Linq (EF 6.1) 教程(三)更新已发布的数据库

项目发布到服务器后,如果在后期,数据库的结构发生变更,如何更新到服务器呢? 首先,右键点击数据库,导出结构脚本文件 把脚本文件和 Mr.E.rar拷贝到服务器,在服务器解压Mr.E,运行其中的“更新数据库结构.bat” 选择脚本文件,选择数据库类型,填写数据库连接字符串,点击[开始更新] 更新不同类型的数据库 如果你设计的时候,是Sql Server类型数据库,但是想生成一个sqlite数据库,或者更新一个sqlite数据库,该怎么办? 和上面那个方法一样,只要选择sqlite数据库类型,填写正

开源数据库选型

一: 关系型数据库发展现状 在 DB-Engines 的排名上,Oracle 和 MySQL 两个产品长期霸占了前两名的位置,在最新的排名数据上(2017年6月),Oracle和MySQL分列第一和第二位,Microsoft SQL Server一直是唯一具有追随潜质的产品: 针对排名前三的开源数据库:MySQL.PostgreSQL.MongoDB,受欢迎程度趋势如下: 从趋势上看,MySQL 在开源数据库受欢迎程度榜单上稳居第一: 2014年以来,PostgreSQL.MongoDB呈持续增

开源数据库 Sharding 技术 (Share Nothing)

注:此文首发于 <程序员>杂志 2008 年 7 月刊. 从 Shard 到 Sharding "Shard" 这个词英文的意思是"碎片",而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏(MMORPG)中."Sharding" 姑且称之为"分片". Sharding 不是一门新技术,而是一个相对简朴的软件理念.如您所知,MySQL 5 之后才有了数据表分区功能,那么在此之前,很多 MySQL 的潜

如何正确选择MySQL数据列类型

MySQL数据列类型选择是在我们设计表的时候经常会遇到的问题,下面就教您如何正确选择MySQL数据列类型,供您参考学习. 选择正确的数据列类型能大大提高数据库的性能和使数据库具有高扩展性.在选择MySQL数据列类型时,请从以下几个方面考虑: 存放到数据列中的数据类型. 数据值的取值范围. 考虑性能和处理效率. 数值操作比字符操作快. 小类型的处理速度比大类型快. 不同数据表中固定长度类型和可变长度类型的处理效率是不同的. 可变长度类型在经过删除和修改操作后容易产生碎片,降低系统性能,需定期运行O

开源数据库的现状

数据库作为业务的核心,在整个基础软件栈中是非常重要的一环.近几年社区也是新的方案和思想层出不穷,接下来我将总结一下近几年一些主流的开源数据库方案和背后的设计思想以及适用场景.本人才疏学浅如有遗漏或者错误请见谅.本次分享聚焦于数据库既结构化数据存储 OLTP 及 NoSQL 领域,不会涉及 OLAP.对象存储.分布式文件系统. 开源RDBMS与互联网的崛起 很长时间以来,关系型数据库一直是大公司的专利,市场被 Oracle / DB2 等企业数据库牢牢把持.但是随着互联网的崛起.开源社区的发展,上

iOS 正确选择图片加载方式

正确选择图片加载方式能够对内存优化起到很大的作用,常见的图片加载方式有下面三种: //方法1 UIImage *imag1 = [UIImage imageNamed:@"image.png"]; //方法2 UIImage *image2 = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image.png" ofType:nil]]; //方法3 NSData

功能齐全、效率一流的免费开源数据库导入导出工具(c#开发,支持SQL server、SQLite、ACCESS三种数据库),每月借此处理数据5G以上

软件名:DataPie 功能:支持SQL server.SQLite.ACCESS数据库的导入.导出.存储过程调用,支持EXCEL2007.EXCEL2003.ACCESS2007. CSV文件导入数据库,支持EXCEL.CSV.ZIP.ACCESS文件方式导出,支持数据拆分导出及自定义SQL查询与导出. 开发背景:作者从事财务管理工作,主要是出具集团的内部财务报表,随着公司精细化管理的需求,管理报表的数据量急速增长, 依赖EXCEL加工处理数据已经变得极为困难,因此团队全面转向关系数据库进行数