AustinDatabases

PolarDB 没有问题,数据一会对,一会不对,和PolarDB 的 读写节点同步有什么关系?

❝ 开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群加群请联系 liuaustin3 ,(共3400人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 )(1 2 3 4 5 6 7 8群已经爆满  9群 为纯聊天群,默认不加入不得发广告,自己公众号文章链接等,发一次直接踢,默认加入8群,开10群PolarDB专业学习群115+)
最近遇到一个问题,一个同学问,他们公司的一个业务计算的时候,数据一会儿对,一会儿不对。说是不是PolarDB的问题,之前的人离职了,说之前用的是MySQL8,后续在我一些文章的提到PolarDB的好后,也转战PolarDB. 问我是不是主从不同步导致的问题。我直接就否认主从不一致导致数据一会对,一会不对的可能性,因为原理是说不通的。 1 PolarDB FOR MYSQL是兼容MySQL,他不是MySQL,MySQL的主从是通过BINLOG来进行数据复制,延迟很正常,如果因为写完主库,再读从库,导致数据不一致,到是有可能数据“一会儿对,一会儿不对”,但是 PolarDB 就一个存储,哪里来的数据不一致,看着我的眼睛,LOOK MY EYES。 说因为复制延迟导致不一致,说明根本不会PolarDB. 原理几年前就写过了,再次重申 PolarDB 带有代理,你如果怕100毫秒以内的数据不一致,写节点有数据,读节点没有,完全可以开启全局一致性,那么数据必然是一致的,读节点和主节点数据是完全一致的,如果超时,那么最差是路由自动导入到主节点。 所以因为主从延迟导致数据一会对,一会不对,这个说法就比较搞笑了。 2 懂得原理后,那么应该往哪里想,先去看看你的表设计和SQL读取数据的部分。 当我拿到,表结构和SQL语句后,
SELECT xxxx, xxl.xxxx, xxll.xxxxId, xxll.xxxxsDate, xxll.xxxName
        , CASE 
                WHEN SUM(IFNULL(xxil.xxualSendAmount, 0)) = SUM(IFNULL(xxil.xxeiveAmount, 0)) THEN 0
                ELSE 1
        END AS xxffFlag
FROM dj_xxnd_notice_xxll xxll
        LEFT JOIN dj_xxnd_xxtice_xxll_xxtail xxtail ON xxll.id = xxtail.xxllId
WHERE xxll.id = xxxxxxx;
xxualSendAmount decimal(20,8) NOT NULL COMMENT '发货数', xxeiveAmount decimal(20,8) DEFAULT NULL COMMENT '收数量' 我看完这个语句,我就问了一句话,如果你的xxeiveAmount,是空的话,你上面的语句
SUM(IFNULL(xxil.xxualSendAmount, 0)) = SUM(IFNULL(xxil.xxeiveAmount, 0)) THEN 0
                ELSE 1
        END AS xxffFlag
1 其实xxualSendAmount decimal(20,8) NOT NULL  ,无需语句中存在 ifnull , xxeiveAmount` decimal(20,8) DEFAULT NULL 默认为空,则需要进行转换。 但这里有一个问题,如果xxil.xxeiveAmount 没有数据呢,一行都没有呢???LEFT JOIN 未匹配会产生一行全 NULL 的虚拟行,IFNULL 把它抹成 0,两边都是 0,0=0 成立 → 判为"收发一致"。 2 一个关键的问题,这里因为保密的问题,表结构我就不能展示了,两个表的主键均为 id,tenantid ,也就是复合主键吗,而查询的实际,根本看不到 tenantid 的查询条件,我怀疑是因为查询的时候,少了tenantid 导致数据一会对,一会不对,对的时候就是 ID 是唯一的,不对的时候是 tenantid + id 才唯一,而只有ID的时候,是不唯一的,这才是根本数据一会对 ,一会不对的根本原因。 因为是外人的事情,我也不好多说,我就把真实的问题反馈了,但说实话,就这样的开发,真实够烂的,咱们写个SQL能符合逻辑认真一点吗? 你说你们的业务逻辑有问题,难为人家DBA,就因为换了个 POLARDB 就说人家有问题,也不放点水,照照镜子。
我和OceanBase集中式滚了4个月,回顾-安装中集中式的5个特点 为了训练AI做错事,判处5年10个月徒刑,上诉中院驳回,维持原判 另赔偿20余万元经济损失 甲骨文终于挺不住了,但这样裁员是不是有点 PostgreSQL 版本升级方法总结,具体pg_upgrade怎么操作 与OceanBase集中式摸爬滚打的4个月,我得到了什么 ? 醋评 数据库行业 “不行了”  ---来自五彩斑斓乌鸦的 3336个字 《没有人为不需要的性能付费 经济下行,正在倒逼数据库"做减法"》 PostgerSQL 14-17备份的变化 PG17更贴近商业数据库 与 实际命令 PostgreSQL 怎么用好高版本的PG调优--PG14-PG18 同学问 PG17 的备份比老的版本 好哪了? 你给总结总结 !! 算法领主与数据农奴:AI时代的不能说的问题-- 此文为AI临时工所做与公众号作者无关 《AI为什么迟迟进不了企业核心系统?我总结了八个原因》 《AI不是出事了,而是我们开始看到它的代价》 NOSQL 怎么翻盘,降本增效为企业节省资源,--DTCC 通过NOSQL给企业系统瘦身 怎么AI设定评估成本模型思考 MySQL 写不进去数据,程序报错,谁的问题? 从亚马逊 AGI 部门裁员看 AI 商业逻辑的必然转向  -- 资本不会给AGI 半点脸 比起简单的Skill技能,我更想建立Agent Skill的系统思维能力--- 感谢本书作者答疑解惑 MongoDB 全文索引 与 展示查询数据的一部分,提高性能 体现价值-我们靠PostgreSQL迁移PolarDB,给公司省下了100万 “巨款” 《告别迁移焦虑:OceanBase MySQL 模式能否兼容 DBA 的“祖传”运维 SQL?》 干数据库不是买白菜:光盯着License几毛钱,看不见300台机器的电费? 一个秘密,不是你 SQL 写对了,是优化器帮“擦了屁股”  客户问迁移后为什么快了--迁移到PolarDB后的故事 AI 时代,我却用不上一个靠谱的数据库产品 AI 引入后,MySQL 列权限控制,插入,更新,读取,删除 --有了AI 真是越帮越忙 PostgreSQL 大表改字段卡死的问题解决了吗?  解决了方案在此 AI 引入DBA 工作,造成工作量增加,忙不过来,根本忙不过来!!! 三无项目导致MongoDB 持续1406% CPU 问题解决