- 博客(8)
- 资源 (2)
- 收藏
- 关注
原创 为什么我的Mysql会抖一下?
在一条sql更新语句是如何执行的?中,我们介绍了WAL(Write-Ahead Logging)机制(为了方便理解,我贴出出之前的图)。数据更新的步骤客户端发起数据更新请求。MySQL服务器接收到更新请求后,首先将数据修改操作写入到Redo Log(重做日志)中。这是为了确保数据在系统崩溃或故障时的持久性和一致性。MySQL服务器同时将数据修改操作写入到Buffer Pool(缓冲池)中对应的数据页中。Buffer Pool是用于提高性能的数据页缓存区域。
2026-09-04 11:26:38
175
原创 事物隔离:为什么你改了我还是看不见?
在上一次分享中,我们提到了通过备份+增量binlog的方式来做数据库恢复,那么备份的周期应该是多久合适呢?一天一备和一周一备的区别在哪里?A. 取决于系统的重要性。B. 一天相比于一周,恢复时间更短。一天一备最坏的情况下需要一天的binlog,而一周一备最坏需要一周的binlog。当然一天一备意味着更多的存储空间。用空间换RTO时间。如果是你业务开发负责人同时是数据库负责人,你可以通过什么手段避免长事物呢?应用层面:A. 检查是否设置了set autocommit=0。
2026-06-26 13:46:22
224
原创 深入浅出索引-上
本文介绍了数据库索引的基本概念和常见模型。索引的作用类似于书籍目录,能显著提高查询效率。文章分析了三种索引模型:哈希表适用于等值查询但不支持范围查询;有序数组查询效率高(O(logN))但更新成本高;二叉搜索树需要保持平衡以维持查询效率。针对磁盘存储特点,实际数据库多采用N叉树(如B+树)来减少I/O操作。InnoDB引擎采用B+树索引模型,主键索引(聚集索引)存储完整数据行,而非主键索引(二级索引)仅存储主键值,查询时需要回表操作。最后讨论了索引维护的叶分裂和合并过程对性能的影响,解释了自增主键在减少维护
2026-06-26 13:44:23
144
原创 Kafka与ZooKeeper滚动升级及回滚实施方案
本文详细介绍了 Kafka 和 ZooKeeper 集群的滚动升级及回滚实施方案。升级目标包括将 Kafka 从 2.2.0 升级至 3.7.0,ZooKeeper 升级至 3.8.4,并确保服务连续性和数据完整性。方案分为升级前准备、ZooKeeper 滚动升级、Kafka 滚动升级三部分。升级前准备包括全量数据备份、版本兼容性验证和回滚工具链准备。ZooKeeper 和 Kafka 的升级均采用单节点逐步升级的方式,确保集群整体稳定。回滚流程针对升级过程中可能出现的异常情况,提供了详细的回滚步骤和触发条
2025-05-22 09:55:44
1730
原创 一条sql更新语句是如何执行的?
前面我们系统了解了,并介绍了执行过程中的处理模块。一般会经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。将ID=2的记录,age的值+1在上篇文章中我们说到了一条查询语句的执行流程,这里再把之前的图拿过来,可以确认的是,执行查询语句的流程,更新语句也会同样走一遍i. 连接器先进行权限管理,和连接认证。ii. 因为有数据更新,所以此时会把表T上所有的缓存都清理掉,这就是我们一般不建议用查询缓存的原因。
2024-07-23 23:56:39
916
原创 【基于Maxkey Oauth2接入Grafana,实现单点登录】
解决Grafana登录报错login.OAuthLogin(missing saved state)问题
2024-04-29 10:41:46
2856
原创 2021-08-31
**利用Qt5.12.10+VS2017 编译Oracle驱动库,解决QOCI driver not load 问题**(亲测可用)前言:Qt官网在qt5以后就不再直接提供Oracle和Mysql数据库驱动,需要用户跟据安装的源码,手动编译数据库驱动,在此分享一下自己在编译Oracle驱动库时的心得以及踩过的坑。一、环境准备1、安装qt-opensource-windows-x86-5.12.10.exe百度云盘下载链接:链接:https://pan.baidu.com/s/13COjY7IO
2021-08-31 02:36:43
541
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅