PG数据库中的表连接方式及应用场景
关系型数据库的表连接最常用的有三种方式,NESTED LOOP,HASH JOIN和MERGE JOIN(SORT MERGE JOIN,SMJ)。在Oracle数据库中,DBA也经常被这三种JOIN给折腾的够呛,一旦优化器因为统计信息的不准确出现了JOIN类型选择错误,那么对系统性能来说,就没法看了。前阵子有朋友问我这三种JOIN在什么场合使用。实际上PG数据库对这三种JOIN的支持都还不错,今天早上事情比较多,我就写个简单点的文章,利用一个INNER JOIN的SQL来给大家解释一下这三种JOIN模式,并且大致分析一下其应用场景吧。
技术分享 | 一招解决 MySQL 中 DDL 被阻塞的问题
之前碰到客户咨询定位 DDL 阻塞的相关问题,整理了一下方法,如何解决 DDL 被阻塞的问题。下面,就这个问题,整理了一下思路: 怎么判断一个 DDL 是不是被阻塞了? 当 DDL 被阻塞时,怎么找出阻塞它的会话?
POSTGRESQL 通过TRIGGER 解决数据库表丢失数据的问题
最近遇到一个难题,关于POSTGRESQL 的Tigger问题,实际上我是十分不愿意在数据库中使用tigger, 管理的问题,性能的问题,以及可能在你不清晰你部署了tigger 的情况下,触发到底会发生什么的问题。但实际的问题中,还是会被逼无奈的使用TIGGER ,所以本期的说说TIGGER 我们怎么用。
MySQL触发器Trigger加载以及目前局限
首先需要知道MySQL中触发器特点,以及表table相关触发器加载方式
故障分析 | OceanBase 频繁更新数据后读性能下降的排查
测试在做 OceanBase 纯读性能压测的时候,发现对数据做过更新操作后,读性能会有较为明显的下降。具体复现步骤如下。
MySQL:5.6同步到5.7 GTID 并发报错一例
同步到的版本为5.7.35,按理说在5.7中还是一个比较新的版本了,报错大概如下:
MySQL8.0 优化器介绍(四)
MySQL8.0在优化器上做了很多努力和优化,仍然不足以保证每条sql,都能拥有合理的执行计划,有些情况需要通过hint来干预。MySQL8.0在hint的种类上进行了新增。本篇主要讲我们可以有哪些方法影响优化器。
MySQL 8.0不再担心被垃圾SQL搞爆内存
MySQL 8.0.28开始,新增一个特性,支持监控统计并限制各个连接(会话)的内存消耗,避免大量用户连接因为执行垃圾SQL消耗过多内存,造成可能被OOM kill的风险。
故障分析 | MySQL 升级到 8.0 变慢问题分析
有一个比较奇怪的现象是:问题持续的过程中,服务器的系统负载、CPU 使用率、磁盘 IO、网络都处于低峰时期的水平,也就是说,问题很可能不是因为硬件资源不够用导致的。 那么,根本原因到底是什么?让我们一起来揭晓答案~
“一鲸落,万物生”之“Oracle落,众厂生”
去O的声音越来越大,让我不经由此联想。Oracle很早就进入中国,在国内的使用的范围非常之广,可以比作一个庞然大物。那么去掉Oracle以后的市场由谁填充,如此庞大的市场导致众多公司都想前来分一杯羹。当前在中国做数据库产品的有200多家,位于头部一直有热度的公司也得有20~30家,在众多公司中,真正做产品的可能也是少数几家。不知道现在做国产数据库的是不是有政府补贴,出现这么多产品,目不暇接。
技术分享 | MySQL多列字段去重的案例实践
同事提了个需求,如下测试表,有code、cdate和ctotal三列,
故障分析 | 执行sed命令卡死CPU消耗100%一例分析
MySQL服务器安装MHA,sed命令修改安装脚本时卡死:
技术分享 | OceanBase写入限速源码解读
OceanBase中的写入限速机制旨在控制系统中写入操作(一般写入操作包括插入、更新和删除等)的速率,目的是为了提高数据库系统的稳定性。本文主要通过以下2个参数来解释写入限速的实现机制。
好的索引当然是要覆盖了!
如果你的查询中用到了索引,这是一个进步,如果能够更进一步,用到了覆盖索引,那么就更牛了!当我们设计一个索引的时候,如果能够从一个更加全面的角度去设计这个索引,不仅考虑到 where 中的条件,还能够考虑到整个 SQL,那么无疑这个索引的设计将是非常成功的。
Mongodb 在工业场景下的数字解决方案
通过今天演讲我们来说说mongodb altas 在行业中的使用经验,希望今天的演讲对你的工作有用。
从源码分析 Redis 惰性删除的实现逻辑
本文将从源码角度分析 Redis 惰性删除的实现逻辑,主要包括以下几部分: Redis 访问 key 的实现逻辑。 主动访问过期 key,什么场景下不会删除? 删除操作的实现逻辑,包括 key 的内存及 value 的内存是如何释放的? 同步删除和异步删除的区别。
MySQL一次大量内存消耗的跟踪
线上使用MySQL8.0.25的数据库,通过监控发现数据库在查询一个视图(80张表的union all)时内存和cpu均明显上升。 在8.0.25 MySQL Community Server官方版本测试发现:只能在视图上进行数据过滤,不能将视图上的过滤条件下推到视图内的表上进行数据过滤。8.0.29以后的版本已解决该问题。
从一个Oracle DBA的角度来看PostgreSQL的运维与优化
PG数据库目前已经成为最热门的开源数据库之一,特别是因为其开源协议十分适合商业化,因此大量的商用数据库,包括大量的国产数据库也都基于PG的开源代码进行研发。
MySQL HeatWave 被添加了机器学习,甲骨文认真了
MySQL HeatWave 是 Oracle 在2020年推出的一个新服务,为 MySQL 数据库提供高性能的分析和机器学习功能。它是一个基于云的服务,使用内存技术和分布式存储来提供更快的查询处理和数据分析。
彻底学透 Redis,建议收藏
于是 Redis 管道(pipeline)便产生了,一次请求/响应服务器能实现处理新的请求即使旧的请求还未被响应。这样就可以将多个命令发送到服务器,而不用等待回复,最后在一个步骤中读取该答复。这就是管道(pipelining),减少了 RTT,提升了效率