吃透3大Binlog模式,MySQL数据零丢失
用错 Binlog 模式,可能会导致 MySQL 的数据不一致性、性能下降、存储空间浪费和数据恢复困难等问题。
MySQL:8.0 从库 MTS并发的定时炸弹
8.0.28以下的MTS可能在运行一段时间后出现hang死的情况,大概如下(模拟的):
慎用,Mybatis-Plus这个方法可能导致死锁
1 场景还原 1.1 版本信息 1.2 死锁现象 2 为什么是间隙锁死锁? 2.1 什么是死锁? 2.2 什么是间隙锁? 2.3 MySQL为什么要引入间隙锁? 2.4 间隙锁死锁分析 2.5 验证间隙锁死锁 3 如何解决? 3.1 关闭间隙锁(不推荐) 3.2 自定义saveOrUpdate方法(推荐) 4 拓展 4.1 如果两个事务同时修改存在的行会发生什么? 5 结语
一文详解Redis哨兵、复制、集群原理与区别
哨兵是Redis集群架构中非常重要的一个组件,哨兵的出现主要是解决了主从复制出现故障时需要人为干预的问题。
互联网公司为啥都不用MySQL分区表?
当MySQL单表的数据量过大时,数据库的访问速度会下降,“数据量大”问题的常见解决方案是“水平切分”。
技术派中ES集成的实现姿势
之前我们已经学习了 MySQL 同步 ES 的技术选型,然后也教大家如何将 MySQL 数据同步到 ES。 这篇文章,属于该系列的第三篇,也是最后一篇,即在技术派项目中实现 ES 查询功能。
一文带您了解向量数据库:大模型场景下知识管理新方式
向量数据库在构建基于大语言模型的行业智能应用中扮演着重要角色。大模型虽然能回答一般性问题,但在垂直领域服务中,其知识深度、准确度和时效性有限。为了解决这一问题,企业可以利用向量数据库结合大模型和自有知识资产,构建垂直领域的智能服务。向量数据库存储和处理向量数据,提供高效的相似度搜索和检索功能。通过向量嵌入,将企业知识库文档和数据转化为向量表示,并与大模型进行交互,实现专有、私域的垂直的行业智能化应用。
9条消除if...else的锦囊妙计,助你写出更优雅的代码
最近在做代码重构,发现了很多代码的烂味道。其他的不多说,今天主要说说那些又臭又长的if...else要如何重构。 在介绍更更优雅的编程之前,让我们一起回顾一下,不好的if...else代码
explain | 索引优化的这把绝世好剑,你真的会用吗?
对于互联网公司来说,随着用户量和数据量的不断增加,慢查询是无法避免的问题。一般情况下如果出现慢查询,意味着接口响应慢、接口超时等问题。如果是高并发的场景,可能会出现数据库连接被占满的情况,直接导致服务不可用。 慢查询的确会导致很多问题,我们要如何优化慢查询呢?
MySQL 同步 ES 实战,肝到爆!
技术是什么?就是拿来玩的,边玩边学,才能成长得更快。 之前已经给大家讲解了 MySQL 同步 ES 的几种方案,下面就教大家如何通过 Canal,将 MySQL 同步到 ES,文章内容绝对妥妥干货! 本文会先讲解需要用到的基础知识,然后再是软件安装,最后就是实战部分。
POSTGRESQL SERVERLESS 是POSTGRESQL 数据库的未来 (译)
多年来,PostgreSQL一直备受瞩目,对于企业来说,POSTGRESQL流行是面临众多竞争后的选择。随着企业试图摆脱昂贵的传统关系型数据库管理系统(RDBMS),但仍希望坚持使用RDBMS,开源PostgreSQL是一种具有吸引力的、更经济实惠的替代方案。曾经有两个托管PostgreSQL服务(Aurora和RDS)的AWS是显而易见的默认选择,但现在还有微软、谷歌、Aiven、TimeScale、Crunchy Data、EDB、Neon等更多选择。
MySQL:主从HASH SCAN算法可能导致从库数据错误
本文主要以hash scan全表为基础进行分析,而不涉及到hash scan索引,实际上都会遇到这个问题。本文主要描述的是update event,delete event也是一样的,测试包含8022,8026,8028均包含这个问题。
什么时候 MySQL 查询会变慢?
前面几篇文章和小伙伴们聊的基本上都是从索引的角度去优化 MySQL 查询,然而,索引创建的好,并不意味着查询就一定快,影响查询效率的因素特别多,今天我们就来聊一聊这些可能影响到查询的因素。
InnoDB为什么不用跳表,Redis为什么不用B+树?
作为开发人员,我们每天都要开发大量的接口,其中包括了读接口和写接口,而对于写接口来说,除了要保证他的性能、可用性以外,还需要有一个重要的问题,那就是考虑如何保证接口的幂等性
数据库运维管理平台面面观
近期因工作需要对国内数家主流的数据库运维管理平台做了个调研,同时对这一产品的发展演进趋势做了简单分析,供大家参考。
数据库信息速递 10年的数据库使用习惯变革,数据库的使用习惯在被改变 (译)
数据库习惯很难改变。根据Stack Overflow对72,517名开发人员进行的2021年调查,Oracle仍然在数据库收入方面赚取数十亿美元,尽管它是开发人员“最令人畏惧”的数据库之一。但是,我们不要关注消极方面。与去年(以及2019年、2018年、2017年和2016年)一样,Redis成为开发人员“最喜爱”的数据库,紧随其后的是PostgreSQL和MongoDB。回到2017年,这个数据库爱好者的头条新闻基本上是相同的,尽管SQL Server自那时以来的排名有所下降,而Google的Firebase则上升了。
【Seata源码领读】揭秘 @GlobalLock 隔离保障的微妙之处
在《深度解析 Seata AT 模式中性能优化与隔离保障的平衡之道》中有介绍 Seata AT 模式通过将传统 XA 方案的 2 个阶段的本地 DB 锁,拆分成了 1 阶段的本地锁(DB 锁),和 2 阶段的全局锁,且设计的初衷是第 2 阶段的全局锁在绝大部分情况下非必要,也就是说若不利用 Seata 所提供的一些机制,就不会使用到 2 阶段的全局锁,那么对大部分隔离性要求不高的场景来说,这样就提升了性能;但若对隔离性有要求,又没有基于 Seata 的规则使用全局锁就可能会出现脏写和脏读的问题。
缓存数据一致性探究
就像每一次发布上线修复问题的同时,也极易引入新的问题,自缓存诞生的第一天起,缓存与数据库的数据一致性问题就深深困扰着开发者们。
一波骚操作,我把 SQL 执行效率提高了 10,000,000 倍!
我用的数据库是mysql5.6,下面简单的介绍下场景
MySQL 9.0要来了,这些新特性,你期待么?
五年时间,除了 PostgreSQL 继续在崛起中,各种前沿技术不断创新与落地。