POLARDB 从一个使用者的角度来说说,POALRDB 怎么打败 MYSQL RDS

news2024/10/5 18:31:07

7fbd17b12cab4e2fb58690567e55d5df.png

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共700人左右 1 + 2)。

数据库最近几年的选择越来越多,数据库之间的互卷的案例也是此起彼伏的发生,而基于MYSQL 核心的 MYSQL RDS 产品,正在接受猛烈的冲击,线下的MYSQL 可能看上去还是有比较稳固的地位,(看上去)。 但基于云上的MYSQL 的RDS 产品正在被替换和被其他的数据库产品 DISS。

今天我们就现身说法,谈谈我们使用阿里云数据库产品的在 MYSQL RDS 和 POLARDB FOR MYSQL的一些感受。当然感受很多都是感性的,我们尽量不让这篇文字成为一片感性的文字。

1   遇到紧急问题,救火的速度

这点实际上是很多数据库使用者最关心的部分,数据库在一些小企业没人管,出了问题没法管,不会管的情况比比皆是,大多的开发者都是使用数据库 增删改查, 而涉及到数据库内部的使用原理和问题发生后的解决都是“肌无力”。

那么在这样的情况下,如何快速的解决问题,是一个需要使用者关心的问题,谁的数据库可以快速扩展,将数据的压力分散,或者添加资源后,马上立竿见影的解决性能问题,是一个需要关注的问题。

在这样的情况下 MYSQL RDS 产品基本上是不能有所建树的

1 扩展能力弱,扩展速度慢,扩展后对于应用生效的速度慢或根本无法生效

举例,你的应用因为查询的问题导致的数据库,主从节点的压力上升,导致的性能问题,你是无法通过单一的添加MYSQL 的从节点来解决问题的,因为应用无法判断你的数据的主从一致性和数据的准确性,完全将操作打散到不同的从库。所以添加从节点对于MYSQL RDS 的可行性不能说 为0 ,只能说,基本没有用。

相对于POLARDB FOR MYSQL ,那么这个问题基本上15分钟内就可以解决(我是可以用脑袋来保证的,因为我们试过多次,压测多次),扩展节点后,相关的压力会快速的打入到新的从库,分担从库的读压力,并且如果你事务控制的好,打散的好,那么POLARDB FOR MYSQL 本身的读写分离自主控制,让你的读事务会分散到不同的从库中,读的压力会很快被救驾,业务持续的可能能行会更好。

那么在这样的场景下,节点的快速伸缩,看似没有什么,但如果你在危难的时候,你就知道这有多么的重要。

2  真并行,让硬件的使用率提高

使用MYSQL的同学一直都在MYSQL和 硬件之间的匹配度上动脑筋,MYSQL 5.X 的“一根筋”,延续到了 MYSQL 8 的 前部分版本,即使后部分版本添加了并行,但你可以使用这些并行是否能让你的大部分SQL 满足并行需求,回答是NO。

而POALRDB 的并行方式是自有的代码和逻辑,对于聚合操作以及常用的操作,只要你的硬件的CPU 核心数大于 4 CPU ,那么并行就可以在大部分语句中有被使用的可能,最大化的利用多核心CPU的处理能力, 以及POALRDB 的 IOPS 高性能的利用。

3    IMCI  不是HTAP ,但是我们需要这个功能

现在的数据库动不动就是 HTAP ,POSTGRESQL 的非开源版本都已经添加了列式的概念(商业),而现在没有列式处理的方式,已经成为一个数据库的短板,我们不需要OLAP ,我们就在一些数据库中进行 COUNT ,AVG ,SUM ,GOURP BY  等操作, MYSQL 的短板就产生了,而这些是无法在一些项目汇中避免的,我们怎么能解决这个问题,如果光靠开发,那么MYSQL 难道真的就是一个  数据容器。 

POALRDB FOR MYSQL ,我们目前一直在研究和压测 POLARDB 的列式节点IMCI ,我们并没有贪心到,要MYSQL 处理分析性的工作,但是对于那些MYSQL 的弱点的问题,POALRDB 是有解决方案,并且在我们初步的使用中,给了我们一个希望,就是IMCI 有限度的使用,让我们天天头疼的问题,可以有头疼片可以吃,可以有解决方案, 不是和开发讲 MYSQL  这个不行 ,那个不行 ,还是不行,你要改这个,你要改那个。

我们会强有力的告诉开发,这个问题如果你们暂时无法解决,或解决的成本很高,我们可以通过IMCI 的方式来暂时化解,给开发和架构一个修改程序前的缓冲,而不是逼死他们。

4   更高的数据存储能力更安全的数据存储能力

说到这里MYSQL本身是可以进行数据的压缩的,但是这并不够,MYSQL 的数据压缩可以说是开源数据库里面,一个不可以  可圈可点的存在,在云上数据存储是要花费大量金钱的,而数据的安全性对于一些乙方 也是非常重要的,MYSQL的灾备是在主从,切换这样的高可用和数据安全能力,但不得不诚然,这样的方式,会有一个特点  

要不性能差,要不安全差, 这就是MYSQL给我们留下的一个谜题,半同步是MYSQL 的数据安全的杀手锏,但性能的影响会产生,同时他也只是一个半同步,当然 INNODB  CLUSTER 可以调整成强一致,可性能的 “绯闻” 又出来了,当然在云上的MYSQL 也不要想什么 INNODB CLUSTER ,没有。

基于硬件 1写三的方式,让数据从硬件的模式就是安全的,你不用考虑什么数据延迟,没有延迟。数据存储会自动压缩,比MYSQL 有可能多40%的空间。

5  培养更舒服的开发者

说实话 MYSQL 这个数据库是一个磨炼开发者,让开发成本和架构变得复杂的数据库,因为你要考虑的问题太多,稍有不慎,那么后期修改的成本会很高,比如我读写分离怎么做,MYSQL 我怎么判断写库读库的延迟,写库上有的数据,读库上没有我怎么办,等等,等等

POALRDB FOR MYSQL 有一个强有力的伙伴,POLARDB的代理,匹配POLARDB 的底层原理,通过REDO进行数据复制中的事务号来判断从库与主库的数据差距,以及只读事务在从库的可行性,不用关心从库有没有数据,会导向主库,若从库和主库一致,代理会导向读从节点去完成事务,有多个读节点时通过当时的连接数来打散对数据库节点的访问,结果为让开发者更注重业务 而不是在架构。

6   可以匹配不同的数据库存储引擎

一些POALRDB 特有的语句和功能,这里就不多解释,这些属于锦上添花的功能。POLARDB可以挂载 X-Engine 引擎让POLARDB 变成归归档库,通过高压缩比的X-ENGINE ,大部分语句都支持在压缩引擎上执行,如简单的数据查询工作,则样可以将冷热数据进行分离,通过DTS 将冷数据过度到 POLARDB + X-engine 的数据节点中,完成动态的冷热数据分离。

在一年多的POLARDB 的使用中,我们持续发现POLARDB 中的新功能和新特性,运用到实际的生产中,大大的提高了生产力,在开发者使用POLARDB 和 MYSQL 基本无差异的情况下,完成了数据库产品的切换,后续我们还会发现更多的使用的方法,解决更多的实际问题。

总结:DBA 手里的最大的武器就是数据库,数据库本身的能力是DBA的底气,所以DBA 在数据库选型和对于不同数据库的了解是一个基本的能力。

b9a0d1a27bbb3e6bb5c4bedd802d971a.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/446932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记录-实现深拷贝的四种方式

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 概念介绍 深拷贝:在堆内存中重新开辟一个存储空间,完全克隆一个一模一样的对象 浅拷贝:不在堆内存中重新开辟空间,只复制栈内存中的引用地址。本质上两个…

Python双向循环链表的操作

目录 一、双向循环链表 双向循环链表图 二、双向循环链表的操作 1、判断链表是否为空 2,链表长度 3,遍历整个链表 4,在链表头部添加元素 5、链表尾部添加元素 6,在指定位置插入元素 7,修改指定位置的元素 8&a…

被裁后找不到工作,本质上是因为原来的能力就配不上高薪,如果技术好,根本不怕被裁,相当于白送n+1!...

被裁员后,能要求公司补缴公积金吗? 一位网友问: 被裁员了,要求公司把历史公积金全部足额缴纳,现在月薪2.3万,但公司每个月只给自己缴纳300元公积金,结果一次补了二十多万,一次性取出…

进程等待、进程替换

目录 进程等待 waitpid函数 wait函数 进程替换 进程等待 进程等待的意义 如果子进程退出,父进程如果不管不顾,就可能造成‘僵尸进程’的问题,进而造成内存泄漏。 另外,进程一旦变成僵尸状态,那就刀枪不入&#xff…

5.5G的关键一跳!将数智未来照进现实

编辑:阿冒 设计:沐由 作为数字时代的三大思想家之一,乔治吉尔德在1993年就指出,未来25年内主干网的带宽每6个月增长一倍,其增长速度是摩尔定律预测的CPU增长速度的3倍。 这就是著名的吉尔德定律(Gilder’s …

Qt开源项目:校医院远程诊断系统介绍

本人研一参考技术书籍开发的一款Qt程序,两年前已上传到GitHub,有兴趣的同学可以去看看。可能之前上传的项目不够完整,导致有一些同学没有在自己的环境上跑通,所以今天将整个工程都重新上传一遍,包括使用到的opencv的动…

Lambda 表达式中的变量必须是 final 的吗

如果我们定义了一个变量,想要在Lambda 表达式中修改变量的值,编译器会发出警告:“variable used in lambda expression should be final or effectively final”。 比如对一个list进行遍历,遍历的过程中对i进行操作 Java 规范中…

浅理解 ES6 新增的数组方法Array.of() 和 Array.from()

文章目录 📋前言🎯Array.of() 方法🎯Array.from() 方法🎯二者区别📝最后 📋前言 在前端开发的面试过程中, ES6 新增是一个很常见的考点,比如说箭头函数、模板字符串、let 和 const …

宁波汽车运输集团:引入二维码技术,实现车辆精细化管理

宁波市汽车运输集团有限公司是宁波市道路货运业的龙头企业之一,主营全国各地的普通货运以及货物专用运输(集装箱、罐式)。 作为汽车运输集团,车辆的安全问题极其重要。因此,公司设备安全部门要求每个驾驶员在作业之前…

netfilter filter表(二)

这次继续分析filter表,不同与之前的分析方式,这次通过将内核中的数据打印出来,对比结构关系图来分析。这是本次分析涉及的几个数据结构: struct xt_table { struct list_head list; /* What hooks you will enter on */ unsigned …

4、SpringBoot接收和响应xml报文请求

背景 平时开发的接口,基本是使用 json 格式的请求报文。然而,有时候也避免不了有 xml 报文请求的场景,最近就遇到了这种情况,在此记录下。另外,工程中使用的是 controller-service……这种结构。 xml请求报文&#x…

链表(JS实现)

📝个人主页:爱吃炫迈 💌系列专栏:数据结构与算法 🧑‍💻座右铭:道阻且长,行则将至💗 文章目录 链表链表的分类创建链表LinkedList类的骨架 实现链表的方法push尾部添加元…

chatgpt智能提效职场办公-ppt怎么蒙层

作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 在 PowerPoint 中添加蒙版图层,可以在幻灯片中创建一个半透明的矩形或形状,并在其上方添加或放置其他对象。 下…

FPGA终于可以愉快地写代码了!Vivado和Visual Studio Code黄金搭档

如果你是一位FPGA开发者,那么你一定会对VIvado这款软件非常熟悉。但是,对于vivado兼容的第三方编辑器软件,你知道Visual Studio Code吗?这是个非常不错的选择,Visual Studio Code搭配众多插件,能让你FPGA开…

【SpringBoot】一:SpringBoot的基础(下)

文章目录 1.外部化的配置1.1 配置文件基础1.1.1 配置文件格式1.1.2 application文件1.1.3 application.properties1.1.4 application.yml1.1.5 environment1.1.6 组织多文件1.1.7多环境配置 1.2 绑定Bean1.2.1 简单的属性绑定1.2.2 嵌套Bean1.2.3 扫描注解1.2.4 处理第三方库对…

【移动端网页布局】移动端网页布局基础概念 ② ( 视口 | 布局视口 | 视觉视口 | 理想视口 )

文章目录 一、视口1、布局视口 ( 网页大小 | 网页大小 > 设备大小 )2、视觉视口 ( 设备大小 | 网页大小 > 设备大小 )3、理想视口 ( 网页大小 设备大小 ) 一、视口 浏览器 显示 网页页面内容 的 屏幕区域 被称为 " 视口 " ; 视口分为以下几个大类 : 布局视口…

项目协同中的git

在远程代码仓库(云效,gitee,github,Coding等)新建一个代码库, 我使用的云效 新建一个develop分支,后续所有人的提交代码都合并到develop分支上面,一般develop分支是用来开发用的&…

尚融宝22-提交借款申请

目录 一、需求介绍 二、图片上传 (一)前端页面 (二)实现图片上传 三、数据字典展示 (一)后端 (二)前端 四、表单信息提交 (一)后端 1、VO对象&…

嵌入式工程师如何快速的阅读datasheet的方法

目录 ▎从项目角度来看datasheet ▎各取所需 ▎最后 Datasheet(数据手册)的快速阅读能力,是每个工程师都应该具备的基本素养。 无论是项目开始阶段的选型还是后续的软硬件设计,到后期的项目调试,经常有工程师对着英…

06-Node.js—模块化

目录 1、介绍1.1 什么是模块化与模块 ?1.2 什么是模块化项目 ?1.3 模块化好处 2、模块暴露数据2.1 模块初体验2.2 暴露数据2.2.1 module.exports value2.2.2 exports.name value 3、导入(引入)模块4、导入模块的基本流程5、CommonJS 规范参考 1、介绍…