备库是否有自己的统计信息?(续)
主备除了 pg_stat_all_tables 之外都要自己独立的"统计信息",因此主从切换之后,这些计数都是重新计算累积的,为了更好分析潜在的问题,可以按需重置,但是要注意可能的危害。
线上问题排查实例分析|关于 Redis 内存泄漏
Redis 作为高性能的 key-value 内存型数据库,普遍使用在对性能要求较高的系统中,同时也是滴滴内部的内存使用大户。本文从 KV 团队对线上 Redis 内存泄漏定位的时间线维度,简要介绍 Linux 上内存泄漏的问题定位思路和工具。
DBA必备技能之网络丢包分析总结
最近一直在恶补网络有关的知识,主要在学习如何分析网络丢包以及网络性能优化,我会分成两篇来总结,第一篇先总结下网络丢包,对于DBA来说,网络和数据库息息相关,我碰到因为丢包导致莫名其妙的流复制冲突导致备库卡住,也遇到过丢包导致PostgreSQL性能骤降的案例,因此作为全干工程师,掌握基本的网络分析技能是十分重要的!
使用MySQL 8.2透明读/写分离,代价几何?(译文)
MySQL 8.2引入了透明读/写分离功能,MySQL 路由器可以自动将只读SQL路由到集群的只读节点。然而,MySQL路由器在此过程中需要对接收到的SQL进行一定程度的解析,以确定其是否为只读SQL。这个解析过程对系统性能会有怎样的影响呢?知名MySQL布道师Frédéric Descamps对此进行了测试,让我们一起看看他的分析。
空间都去哪里了?(中)
话接上回,空间都去哪里了?(上),当异常退出的时候,可能会留下许多孤儿文件,就像蛀虫一样,悄无声息蚕食你的空间。上回提到可以使用SQL+人肉巡检来排查:
【慢SQL性能优化】 一条SQL的生命周期
本文采用一张简单的架构图说明了MySQL查询中使用的组件和组件间关系。 解析了一条sql语句从客户端请求mysql服务器到返回给客户端的整个生命周期流程。 列举了单表sql、关联表sql 两种不同SQL在整个生命周期中的执行顺序以及内部组件逻辑关系。 通过如上案例的解析可以让开发者们掌握到单表sql、关联表sql的底层sql知识,为理解慢sql的产生和优化鉴定基础。
【京东技术双十一】记一次线上问题引发的对 Mysql 锁机制分析
在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!
MySQL:刷脏相关
这里简单记录一下刷脏和IO代码的简要流程(8.0.23),以下内容仅供参考。先简要总结一下: 当大于默认8192(innodb_lru_scan_depth*innodb_buffer_pool_instances)的时候只有flush list刷脏,也就是buffer pool 的page会尽量填充,不做LRU淘汰。 当小于默认8192(innodb_lru_scan_depth*innodb_buffer_pool_instances)的时候会触发LRU扫描,扫描的时候需要释放page,如果page是干净的则直接释放放入free list,且做LRU淘汰。如果page不是干净的则需要进行LRU刷脏,完成后且放入free list,且需要做LRU淘汰。 刷盘总是先写入到DBLWR,这是同步IO的方式,如果不是O_D打开的文件还需要做对DBLWR做FSYNC。 刷盘写入数据文件由DBLW
数据库:系统设计的核心
在系统设计中,理解数据库的复杂性至关重要。如果你正在为这样的设计做准备,而对数据库感到困惑,那么你来对地方了。 我将带你了解数据库的基本知识,从基础知识到细节。
MySQL哪些情况需要添加索引?
文章+执行计划,都掌握的话,我们可以优化80%的SQL了。 这一篇文章,就来聊一下,MySQL在哪些情况下,需要添加索引(根据小编以往的工作经验,绝大多数SQL,只要添加合适的索引,基本就完成了优化)。 特别是最后一种场景,如果没添加合适的索引,很可能长时间获取不到结果。 我们就一一分析这些需要创建索引的场景:
技术抽丝剥茧|为什么 Redis 内部使用不同编码?
通过这次问题分析,我们可以看到 Redis 内部提供的不同编码会带来不同的性能和成本差别,建议大家在使用 Redis 时,也可以多了解自己的访问场景,根据实际情况来做一些调优。同时也提醒我们,时刻保持对问题根因的探究精神,才可以使我们自己的技术和业务能力不断提升。
千万级数据深分页查询SQL性能优化实践
分页查询在数据库中是一种很常见的应用场景,一般都可以使用limit语句快速实现。但是随着表数据的增长,limit查询性能也会越来越慢。
Spring Cache 缓存注解这样用,实在是太香了!
作者最近在开发公司项目时使用到 Redis 缓存,并在翻看前人代码时,看到了一种关于 @Cacheable 注解的自定义缓存有效期的解决方案,感觉比较实用,因此作者自己拓展完善了一番后分享给各位。
聊一聊Greenplum与PostgreSQL
总而言之,Greenplum虽然同为PostgreSQL系的产品,但是还是有诸多差异,但用好分布式是个技术活。
MySQL:MDL LOCK的“穿越行为”
本案例中我们得到几个结论: 语句是否能够执行主要看的优先级矩阵和兼容矩阵,前者用于判断本次执行的语句和堵塞中的MDL LOCK谁的优先级更高,优先级更高则可以继续判断兼容矩阵。后者用于判定本次执行的语句和获取MDL LOCK的语句(或者事务)是否兼容。 lock table read 一大批表的时候,可能某些表加锁成功了,而某些表加锁堵塞了,看起来是整个lock table read语句堵塞了。 mysqldump导出如果全是innodb表肯定是要--single-transaction的。
mysql中一条查询语句的执行全过程是怎样的?
mysql作为最常用的关系型数据库,无论是在应用还是在面试中都是必须掌握的技能。
浅析Redis大Key
在京东到家购物车系统中,用户基于门店能够对商品进行加车操作。用户与门店商品使用Redis的Hash类型存储,如下代码块所示。不知细心的你有没有发现,如果单门店加车商品过多,或者门店过多时,此Key就会越来越大,从而影响线上业务。
(大表小技巧)有时候 2 小时的 SQL 操作,可能只要 1 分钟
如果直接执行这条 SQL 会发生什么问题呢?
如何解决 MySQL 主从延时问题?
MySQL 主从延时的原因是什么? 具体哪个环节发生延时? 如何解决呢?
[bug]MySQL 哈希扫描错误地应用日志导致主从中断
数据库版本:5.7.21,遇见一个数据同步的bug,主库调用一个函数操作dml,导致主从异常中断。