国产数据库最终选择

最终选择是适合自己的, 白鳝说"不是说国产这不好,那不好,而是想办法用好它!" 这句话缺少了选择,而是强调努力,忍耐,等待国产数据库越来越好.

选择大于努力,大于忍耐! 以前中国市场各大美国数据库产品都在争奇斗艳,然后它们自我进化,也有很多从DB2换成ORACLE.

当然,你们公司做出了选择,那就想办法用好它就是了,前提是它稳定,厂商继续改进. 如果选择不知名DB,比如贵州银行选择了 易鲸捷esgyndb. 结果可想而知 OVER了!

ORACLE不是不能用,顶多不买服务,不买新版本而已.只所以要搞国产替代,因为鹅乌战争导致的. 甲骨文公司明确地退出了鹅国市场,不再提供服务了.那么作为非常依赖原厂的甲方,就很难受,没有背锅侠. 为了防止美西方帝国主义,资本家甲骨文公司给小鞋子穿. 我们要坚决把ORACLE数据库从中国市场踢出去.

按照传统作风来说,是一场运动,话说得好听叫自愿, 上次疫情打疫苗也是那样.

除了国企使用ORACLE外, 很多国企控股,国企入股正在接受这种压力,哪怕你没有用到ORACLE数据库,而是用其它开源数据库,也要强逼你使用国产数据库.

这就是考验老板 印度(钢铁的意志)的问题了,能否抗得住,能否怼得过,关系到老板的幸福,领导升迁!

当然作为DBA的, CTO的 您 要跟老板讲清楚利益关系.目前国产数据库BUG多,性能不咋地,除了老牌数据库外,其它数据库稳定性没有经过时间得考验.

选错了国产数据库,或者轻易转到国产数据库是个非常大的业务风险.成本高,风险大.

某国产数据库救援现场惊魂8小时

在经济不景气,萧条下,为了没有增益的业务而不必要的投资是不明智的.且极大可能影响业务的稳定型.

所以 没钱去用国产数据库,则要干,怼,抗上面的压力. 它们官僚主义,形式主义,运动主义作风很坏的. 为了推国产还在民企施压!

有钱替换ORACLE

可选择的数据库 建议使用国产替代之前的出生的数据库
达梦-DMDSC
人大金仓-KES RAC
南大通用-GBase8s
蚂蚁-OceanBase
中兴-GoldenDB
华为-GaussDB

老牌国产数据库都支持各种高可用模式

主从 集群 分布式 MMP

没钱有实力的 比如说工行,老早就用MYSQL替代ORALCE,比国产替代运动-瑶瑶领先好几年.那么那个啥要逼逼工行咋办呢?

工行可以自己把MYSQL改造下去申请信创, 然后工行MYSQL分支,自主自控的国产数据库.

没钱没实力的

那就继续使用开源数据库 JAVA+MYSQL8.0+REDIS+CK+ES黄金组合.

并硬刚上峰的压力.

下面给各位检查各种国产数据库消耗CPU指令的办法 PERF 纯粹娱乐放松

测试方式如下:步1:执行perf命令:

perf stat -einstructions:u,cycles:u,cycle_activity.stalls_total:u,cycle_activity.stalls_mem_any:u -p 38433

其中 38433 ,为进程号。如果是MYSQL、华为OpenGauss,这里要改为"-t 线程号"。":u",代表只在指令是用户态时才进行计数。其实就是去除操作系统的影响。

步2:在28433进程的Session中,执行SQL:

postgres=# execute cs(1);
 id1 | id2 | c1       | c2-----+-----+----------+--------- 1   | 101 | AAAAA111 | aaaaaa1
(1 row)

注:SQL为:

prepare cs(int) as select * from SharkDB where id1=$1;

并且已经执行execute cs(1)多次

步3:回到perf中,Ctrl+C,就能看到效果了:

[root@sharkdb ~]# perf stat -einstructions:u,cycles:u,cycle_activity.stalls_total:u,cycle_activity.stalls_mem_any:u -p 38433^C    <-------按Ctrl+C Performance counter stats for process id '28477':
            60,054      instructions:u            #    0.17  insn per cycle                    357,168      cycles:u                                                               302,468      cycle_activity.stalls_total:u                                              122,362      cycle_activity.stalls_mem_any:u                                   
       1.007995611 seconds time elapsed

遥遥领先的国产数据库:​​​​​​​

[root@sharkdb ~]# perf stat -einstructions:u,cycles:u,cycle_activity.stalls_total:u,cycle_activity.stalls_mem_any:u,L1-dcache-loads:u -t94509^C Performance counter stats for thread id '4504':

           262,662      instructions:u            #    0.15  insn per cycle                  1,681,672      cycles:u                                                             1,411,605      cycle_activity.stalls_total:u                                              614,187      cycle_activity.stalls_mem_any:u                                   

       1.959583056 seconds time elapsed

|-------------------------------|---------|--------------|----------------|
| | PG 16 | MYSQL 8.0.25 | OPEN GAUSS 5.0 |
| 指令 | 6,0054 | 6,3792 | 26,2662 |
| 周期 | 35,7168 | 34,4998 | 168,1672 |
| cycle activility stalls total | 30,2468 | 29,6039 | 141,1605 |

高斯不出意外的遥遥领先,相同数据量、相同逻辑的SQL,单从指令数上,从原生PG多4倍。

你们说像华为这样实力雄厚的公司把PG套壳修改内核.CPU消耗指令数量比原来还高,说明代码实力不强. 那国产排名10名之后的PG魔改的DB性能又如何? 什么好弱DB,什么破烂DB.就遥遥落后了

最重要的是稳定 ,不丢数据,卡顿都无所谓,兼不兼容也无所谓.

不要把ORACLE的存储过程业务逻辑,轻松导入到国产数据库.

作为架构师DBA跟你们说 存储过程跑业务那是老掉牙的架构了,是上个世纪MIS和ERP系统的C/S架构.

要用先进的架构 微服务架构! 或者退一步B/S单体架构,总之把业务逻辑放在后端就行.

国产替换中,顺便把业务也重构一下. 数据库就是存数据的地方.用现在时髦的话说就是存算分离

最后有人说看不懂,再度总结下

1 有钱企业

直接购买先进的国产数据库, 早在信创之前诞生的

2 有IT技术实力的企业

可以直接折腾开源数据库

3 没钱没IT技术实力

只好当小白兔去购买信创鸡尾的数据库,毕竟便宜

4 可以不选择硬抗

对于控股(娃哈哈),入股(???),民企来说 不用鸟信创,国产. 不要充当培育国产数据库的牺牲品

相关推荐
瓜牛_gn27 分钟前
mysql特性
数据库·mysql
奶糖趣多多1 小时前
Redis知识点
数据库·redis·缓存
CoderIsArt2 小时前
Redis的三种模式:主从模式,哨兵与集群模式
数据库·redis·缓存
师太,答应老衲吧5 小时前
SQL实战训练之,力扣:2020. 无流量的帐户数(递归)
数据库·sql·leetcode
Channing Lewis6 小时前
salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗
数据库·salesforce
毕业设计制作和分享7 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
ketil277 小时前
Redis - String 字符串
数据库·redis·缓存
Hsu_kk8 小时前
MySQL 批量删除海量数据的几种方法
数据库·mysql
编程学无止境8 小时前
第02章 MySQL环境搭建
数据库·mysql
knight-n8 小时前
MYSQL库的操作
数据库·mysql