数据库行业并非新兴行业,在它 40 多年的发展过程中经历了多个时代的演进,也发展出了各种细分类型下的数据库产品,最近几年时间国产数据库也加入了激烈的市场竞争之中。纵观数据库产品江湖,武林大会同台竞技,谁是最强王者?
2020年3月8日,腾讯云TVP技术闭门会展开了这样一次特殊的线上较量,MySQL、PostgreSQL、NoSQL、CynosDB的选手们展开了一次唇枪舌剑的对话,为自己身后的数据库登台打擂。以下是本次技术闭门会各位武林高手的“内功心法”,以飨读者。
MySQL 8.0,数据库王者正当年
当你提到数据库,就不得不提Oracle。整个数据库行业,谈论技术无出Oracle其右者,Oracle浸淫数据库领域多年,早已将这个行业吃透。几乎所有的数据库,不管是商用数据库还是开源数据库,都是照着Oracle模式在走,包括交易模型中的数据处理等层面更是如此。
知数堂联合创始人吴炳锡首发登场便开宗明义地指出,Oracle仍是数据库行业当之无愧的王者,而Oracle新出的MySQL 8.0更谈得上一句“开源数据库中的王者正当年”!
”MySQL 8.0相比大家往常印象中常用的5.7版本有近300个提升点,在优化器、管理、复制、插件、安全、开发、InnoDB等七大方向都有细致的更新,8.0可以说是你没有体验过的全新版本。如果说你还是觉得MySQL不好用,只能说你的MySQL版本太老了,已经不在官方团队的支持范围内了。”
作为一名数据库行业从业15年的老兵,吴炳锡老师一针见血地指出数据库产品背后开发团队的重要性:
“MySQL 8.0为了做DDL回滚和数据字典的功能,多写了30+万行代码,这远超出了大众认知的概念范围,MySQL背后的开发团队起码在500人以上规模。可想而知,MySQL能得到的技术支持不是一般的同类型数据库或开源数据库所能比拟的。“
除了这些重要的特性与研发支撑,吴炳锡老师还提出了一个最直观的论据:
DB-engine排行榜,MySQL仅次于老大哥Oracle,位居第二。对于数据库产品的选择,吴炳锡老师也给出了自己的“万金油”方案:
大咖金语:
“数据库用MySQL 8,自带原生高可用;缓存用Redis;搜索用ES;分析用Clickhouse;时序类用InfluxDB。这些产品使用人群基数大,方案成熟度高,基本上不会出问题。”
NoSQL:高并发,低延迟,互联网技术栈的标配
“Redis是NoSQL的王牌选手,它是最适合互联网应用场景的数据库。”极数云舟对外合作部总监、Redis中国用户组主席张冬洪非常自信地抛出了这个结论,在他看来,伴随着互联网和移动互联网需求的大爆发,社交、电商、游戏、视频、直播等新应用场景对传统数据库的性能提出了更高的要求,而Redis从2014年的2.8版本开始,就逐步伴随着互联网和移动互联网的发展而不断完善,变得非常的强大,如今支撑着这些应用场景,成为移动互联网时代的技术底座。
大咖金语:
“单进程、高可用、低延迟、分布式、高性能……Redis的特点鲜明,优势突出,已经成为了互联网技术栈的标配。跟MySQL在互联网的广泛应用一样,Redis在互联网场景的应用同样不遑多让。”
张冬洪特别指出,Redis支持的数据结构非常丰富,这是其能脱颖而出的重要原因:“Redis有十多种数据结构,如今这些数据结构已经深入互联网业务的骨髓,抢红包、秒杀、排行榜等等场景都有它在背后支撑。”
除此之外,张冬洪还连珠炮式地提出了一连串Redis“强无敌”的论点:
- Redis是既可以当缓存又可以当存储的KV数据库;
- Redis是最简单扩展自定义功能的数据库;
- Redis是原生支持架构类型最全的数据库;
- Redis是唯一可以作为消息队列使用的数据库;
- Redis是最容易实现弹性扩缩容的数据库;
- Redis是内存管理最好的数据库;
- Redis是支持秒级无损升级的数据库;
- Redis是最具发展潜力的数据库。
行业地位高,应用场景广,生态体系全,这是张冬洪对Redis所作的总结陈词。
云原生数据库将是数据库的未来
“云原生数据库将是数据库的未来,将至已至,未来已来。”腾讯云自研CynosDB数据库产品负责人刘峰甫一登场便给出了对数据库未来的论断。
大咖金语:
“云原生数据库是NewSQL的一种,是为了解决传统数据库的痛点而生的。孟子曾提到“鱼与熊掌不可兼得”,但NewSQL却将NoSQL的扩展性和SQL的ACID统一在了一起。”
作为云计算时代NewSQL的代表,云原生数据库到底解决了哪些问题呢?刘峰在解答前首先细数了传统数据库架构的“七宗罪”:
- 扩展性差;
- 资源利用率低;
- 可用性无法保证;
- 可靠性无法保证;
- 性能受限;
- 备份回档慢;
- 运维成本高。
“导致传统数据库这些问题的根本,在于传统数据库是计算和存储一体化的架构。腾讯自研的新一代企业级云数据库CynosDB,就是为了解决以上问题而应“云”而生的。”
刘峰指出,云原生数据库CynosDB解决以上难题的关键思路在于通过计算和存储分离创新性的实现了“日志即数据库”的架构,获得了资源池化和快速的弹性扩展的能力。传统数据库架构中,通过简单地改变存储介质替换MySQL本地文件系统,并不能彻底解决数据复制的问题。CynosDB通过对MySQL存储引擎InnoDB的改造,结合腾讯云存储构建了一套多租户的共享分布式存储,并异步的实现了日志的合并,完成了存储资源的池化。同时也继承了云存储自身大容量,多副本,自动扩容和自动修复等诸多特性。这样的改造也实现了计算层的无状态,计算实例可以完成秒级的升降级和故障切换。多个节点共享海量分布式存储,不再需要数据搬迁和复制,主从直接不需要通过binlog进行同步,从根本上解决了传统数据库架构导致的各种难题。
”目前CynosDB实现了128TB的海量存储自动扩容;支持最大规格96C768GIB的计算实例;100%兼容MySQL和PG等多个引擎。除此以外,还实现了秒级的添加只读节点,故障切换和快照备份,节点间仅有毫秒级的延迟”。
刘峰最后总结道,2022年,世界上75%的数据库将运行在云上,而云原生数据库将无疑成为用户的最佳选择。
PostgreSQL:世界上最强大的开源数据库
大咖金语:
“PostgreSQL是最早的开源数据库!1986年就启动研发了,比包括MySQL在内的其他开源数据库都要早。它是一位久经考验的老战士,替换Oracle,在路上......请放心使用,尤其在金融核心交易系统。”
太阳塔科技公司CTO赵振平老师(PostgreSQL中文社区主席)是国内第一批获得OCP证书的Oracle数据库从业者,不少数据库从业者称他一声“赵老师”,他却始终认为:团队的力量远远凌驾于个人力量之上,这是他看好PostgreSQL的重要原因之一。
“PostgreSQL是由全世界很多开源爱好者组成的一个有梯队的、成体系的舰队。它背后有一个非常强大的开发团队,所以它过去能够开发出很多重大的新特性,以后也能够给你提供持续的支持。”
赵老师口中的“久经考验的老战士PostgreSQL”,曾经和MySQL在同一条起跑线上,机缘巧合,因为MySQL搭上了互联网的便车,在用户群体上和PostgreSQL大大拉开了差距。但是,今天,PostgreSQL在开发规划上的管理非常科学,每年一个大版本更新、每个季度一个小版本更新,每一个大版本更新都是跨时代的变化,而不是bug fix的小修小补。
最关键的是,PostgreSQL还具备可与Oracle匹敌的高性能。Oracle数据库远远甩开其他商业数据库的利器之一是:“并行”。
PostgreSQL同样具备“并行”,在“并行扫描”,“并行连接”和“并行Append”上非常卓越。再加上其稳定和安全的特性,被广泛使用在金融核心领域也就并不奇怪了。
在功能方面,PostgreSQL甚至比Oracle还强。Oracle有的PostgreSQL都有,Oracle没有的PostgreSQL也有。在索引类型、分布式、GIS、操作系统支持、代码量等多个方面,PostgreSQL都优于Oracle和MySQL。
技术不是唯一,生态仍是关键
大咖金语:
”2007年前后的时候,MySQL已经开始流行,背后原因在于其很好地抓住了互联网的兴起。从技术角度讲,MySQL和PostgreSQL不存在技术上的优劣之分,而在于其背后的社区管理和生态。“
腾讯云TBase数据库负责人李跃森在点评时指出,对于数据库产品而言,技术实现不是决定成功与否的唯一因素,背后的社区管理和生态同样重要。
”PostgreSQL和MySQL相比,前者的技术实力并不弱于后者,在许多领域甚至处于领先位置。MySQL成功的关键在于抓住了那一波互联网兴起的红利,经过多年发展后,知名度和用户案例的拓展已经从互联网行业扩展到保险、电信、金融等领域。反观PostgreSQL,由于开源协议过于自由,社区力量不易集中,没有像MySQL那样有Oracle这样的强大的后盾,在集中资源、打造格局方面能力稍弱。“
技术社区的运营,软件生态的打造,开发者品牌的维护,是一个数据库、框架甚至小小开源组件取得成功的要素之一。
“云计算虽然现阶段存在诸多问题与挑战,但上云已经是肉眼可见的技术趋势。背后体现的已经不是要不要上云,而是什么时候上云?怎么上云?上哪家云的问题。以美国看中国,不难看出这个趋势,云数据库在未来一定会有更大的应用场景,因此我对CynosDB抱以乐观的态度。”
腾讯云,有能力与义务解决客户的数据库问题
“当客户在使用云厂商所集成的数据库产品时,一定会遇到各种各样的问题,很多问题其实源自官方数据库的自身bug或配置问题,但客户不会去考虑这些。腾讯云既然提供了集成数据库产品的云服务,就一定会找最专业的人来维护。”
腾讯云数据库负责人林晓斌在点评环节指出了全面云计算时代下,集成数据库等产品的云服务在维护客户实例时,需要关注的客户实际需求。在他看来,不管是官方的问题还是云服务的问题,都是腾讯云团队需要为客户解决的问题,腾讯云会针对客户的实际需求,给数据库增加功能、修复bug,这是能力,也是义务。
对于用户普遍关心的云数据服务和自建数据服务的关系问题,林晓斌也给出了自己的看法:
大咖金语:
“云数据服务和自建数据服务的区别关键不在于成本,而在于云提供了一个更大的弹性能力,帮助企业在实际的生产环境中能弹性应对流量的洪峰与低谷。自建数据服务在企业做大以后也是必然选择,与之相匹配的DBA团队实际上又让自建的数据服务成为了一种类似私有云的概念。”
未来数据库生态多方并存
“不管是NoSQL还是NewSQL,都是在不同的领域里深耕,瞄准的是不同的赛道。不同的数据库产品之间在技术、规划和思路方面都值得相互学习,腾讯内部数据库发展历程也是经历了多次迭代创新,逐渐完善。”
腾讯分布式数据库TDSQL负责人潘安群在点评时总结道,在他看来,所谓的“数据库王者”其实并不存在。“在当下市场对数字化或者信息化的要求越来越高,业务场景是以各种各样的趋势发展。我们需要的是多种,能够应对未来长期技术演进中面临的各种数据库场景需求和挑战的数据库技术。”
大咖金语:
“One size fits none,在云趋势下,未来一定是多种数据库技术生态并存的局面。个人认为云数据库是数据库的未来方向,云原生级别的数据库在未来能取得更好的发展前景,这也是国产数据库弯道超车的机会。”
最近几年,基础技术国产化进程加快,对核心技术要自主可控的担忧也让不少圈内人担心MySQL数据库的闭源、Oracle数据库的卡脖子,潘安群认为,一方面是我们对数据库核心技术的自主可控、自主研发迭代,同时需要寻找新的创新路径。只有在云数据库的趋势下,才有了全面“去O”的可能性。
“按照Oracle数据库的思路去做一款同类型数据库,实现对Oracle数据库的取代,本身就是不现实的。只有另辟蹊径,才能弯道超车,目前看来,云原生就是那条可能的赛道。”
用户需求是动力,云原生已是云数据库基础能力
对于谁是数据库王者的辩论主题,腾讯云原生数据库CynosDB/CDB研发负责人程彬也给出了自己的看法:
大咖金语:
“在数据库的选型方面,并没有标准答案。我们观察到,无论腾讯公司内部自研业务还是腾讯云上用户对数据库进行选型,基本上都是结合实际的业务场景、团队的能力和技术储备等多个维度来综合决策。比如,业务在刚起步阶段对扩展性要求低,MySQL可能就够用了,规模上来后,需要弹性能力和性能更强的NoSQL来支撑。”
数据库技术创新,一般有两种模式。第一种模式是在新的科学理论的牵引下,从无到有研发出全新的技术,比如数学家E.F.Codd提出了关系和关系运算的理论,后面就有了oracle关系型数据库的诞生。第二种模式是在新的业务问题的牵引下,不断运用技术去增效降本、去提升用户体验。比如互联网时代海量数据量/海量访问场景出现后,原有以MySQL为代表的关系型数据库在扩展能力明显不足,NoSQL数据库就应运而生。
业界数据库技术创新主要走的第二种模式。比如,腾讯的数据库团队在支撑公司微信、QQ、Qzone、QQ游戏、腾讯广告、微信支付等不同业务场景中,不断挖掘业务的海量、可持续性、合规性等需求,来不断丰富数据库平台矩阵和能力。尤其在云时代,从赋能业务升级到普惠行业,需要更加立体和有竞争力的数据库技术栈来满足行业需求,而云原生能力就是那把入门钥匙。
程彬最后将自己的票投给了CynosDB,因为云原生是肉眼可见的未来!
技术本无优劣,选型只看需求
腾讯云数据库运营负责人邵宗文是这场别开生面的辩论大赛中最幸福的那个人,在他的牵头下,四位数据库大咖战作一团,好不热闹。在听完所有辩手的发言与嘉宾的点评以后,他发出了这样一句感叹:
大咖金语:
“技术本身没有优劣之分,选型只看业务场景的区别与需求。”
最终,在159名观众和4名点评嘉宾的票选下,来自知数堂的吴炳锡老师成功摘得本次辩论赛王者桂冠,脱离尖锐的辩论风格后,吴老师的总结陈词非常令人动容:
感谢大家对MySQL的认可,未来也许真的在云原生上,现下争论MySQL和PostgreSQL谁更好并没有意义。大家盯的赛道都不尽相同,未来做大后也可能都会回归到私有云上,这是数据库人最终的状态。最后感谢拿了MySQL工资投票的各位,那些拿了MySQL工资投给PostgreSQL的同学要好好反思了。
当腾讯会议界面上的壮观的嘉宾阵容挥手告别以后,窗外已是夕阳西下。数据库市场经过数十年的发展,不仅没有随时间流逝成为夕阳产业,反而持续产生着创新与变革,在云计算的加持下,数据库的未来必将走向新的高峰。