- 博客(47)
- 资源 (1)
- 收藏
- 关注
原创 整理下个人学习的笔记,申明所有的博文可能摘录自他人的文章
个人申明,此为个人学习的笔记,可能摘录自他人的文章,而非原创。如有疑问,可联系本人。本人QQ: 371269755
2018-12-25 13:45:14
227
原创 PostgreSQL 统计信息 — 完整总结与优化指南
保持 autovacuum 正常运行:这是统计信息自动更新的基础,禁用会导致统计信息持续老化。大批量写入后手动 ANALYZE对高选择性列提高采样精度:用于 JOIN 条件、WHERE 过滤的关键列,适当提高 STATISTICS 值(200~500)。对表达式过滤创建统计或索引:避免规划器使用固定 0.5% 的默认选择率。多列相关性问题优先用多元统计:比修改查询写法侵入性更小,且对应用透明。不要盲目调大:全局调大会增加所有表的 ANALYZE 时间和规划时间,应按需在列级别调整。n_distinct。
2026-04-17 16:13:13
403
原创 PostgreSQL查询执行阶段 — 总结与执行计划选择指南
保持统计信息新鲜:确保 autovacuum 正常运行;对频繁变更的表手动ANALYZE;对高选择性列提高善用:对比rows=估算与rows=实际,偏差超过 10 倍时需关注统计信息或查询结构。避免阻止规划器使用索引不要对索引列做函数运算(→ 改为范围条件)不要隐式类型转换(合理使用预备语句:参数选择性差异大(如有时走索引有时走全表)时,设置。大表连接控制顺序:超过 8 张表的复杂查询,考虑用 CTE 分段或手动设置固定连接顺序。work_mem按需调整。
2026-04-17 13:47:19
213
原创 PostgreSQL 关系级锁 — 总结与优化指南
PostgreSQL 的锁机制设计精细,通过多种锁模式和公平等待队列在并发性与数据一致性之间取得平衡。长事务持锁→ 设置超时参数,优化事务边界高强度 DDL 阻塞业务→ 使用 CONCURRENTLY 变体,选择低峰期执行死锁→ 统一加锁顺序,应用层重试锁池耗尽→ 调整,避免单事务操作过多对象理解锁的兼容矩阵和等待队列行为,是排查和预防 PostgreSQL 性能问题的基础。
2026-04-17 10:20:29
345
原创 PostgreSQL 事务 ID 年龄增长与冻结机制分析
全局下一个待分配的事务 ID(:表的冻结水位线,记录在该表中所有的事务 ID 已被替换为源文件所有的元组已被冻结(xmin 替换为默认值为 3(每个表独立维护自己的问题答案表 t1 freeze 后不修改,只操作其他表,t1 的年龄会涨吗?会涨。全局 XID 计数器持续被推进,age = nextXid - relfrozenxid 差值不断增大数据库年龄什么情况下增长?只要集群中存在任何写事务,所有数据库和表的年龄都会增长年龄增长的速率取决于什么?
2026-04-01 15:01:21
372
原创 PostgreSQL 预写日志(WAL)深度解析
WAL 核心价值:├─ 持久性(Durability):提交即持久,崩溃可恢复├─ 性能:顺序写 WAL 比随机写数据页快得多├─ 复制:WAL 流式传输实现主备同步└─ PITR:归档 WAL 实现任意时间点恢复关键机制:├─ LSN:WAL 中的逻辑位置,贯穿所有一致性判断├─ 全页写(FPW):防止撕裂页,checkpoint 后首次修改触发├─ Checkpoint:定期将脏页刷盘,缩短崩溃恢复时间└─ WAL buffer:批量写入,减少 fsync 次数。
2026-03-27 17:32:08
604
原创 PostgreSQL 索引内部机制与表重建深度解析
索引膨胀来源:MVCC 死元组 → 死亡索引条目 → VACUUM 清理但不收缩文件解决索引膨胀:├─ 日常:VACUUM 自动清理死亡条目(不收缩)├─ 重建:REINDEX CONCURRENTLY(不阻塞,PG12+)└─ 预防:合理设置 fillfactor,利用 HOT 更新减少索引写入。
2026-03-26 17:59:08
594
1
原创 PostgreSQL 冻结(Freeze)机制深度解析
当多个事务同时对同一行加行锁(等),PostgreSQL 用替代单个 XID 存储在t_xmax中。MultiXactId 同样是 32 位整数,同样面临回绕问题。问题根源:XID 是 32 位整数,约 42 亿后回绕,旧数据变"未来"数据 → 不可见解决方案:冻结(Freeze)将 tuple 标记为 HEAP_XMIN_FROZEN→ 永远可见,脱离 XID 比较元组级:xmin 年龄 > vacuum_freeze_min_age(50M)→ 单 tuple 冻结。
2026-03-26 15:59:11
452
原创 PostgreSQL VACUUM 与 AUTOVACUUM 深度解析
死元组产生(MVCC UPDATE/DELETE)│▼autovacuum 触发判断(死元组比例 > threshold + scale_factor × reltuples)│▼VACUUM 执行├─ 扫描堆页,收集死元组 TID├─ 清理索引(删除死索引条目)├─ 清理堆页(回收空间,更新 FSM)├─ 更新 VM(标记全可见/全冻结页)└─ 冻结旧 XID(防回绕)│▼空间可被新数据复用(不归还 OS)
2026-03-26 13:21:20
494
原创 PostgreSQL pageinspect 插件深度解析
是 PostgreSQL 官方提供的一个强大的底层调试与诊断扩展。它允许数据库管理员(DBA)和开发者直接检查数据库页面(Page/Block)的内部二进制结构。
2026-03-26 08:42:37
245
原创 PostgreSQL 页剪枝(Page Pruning)与 HOT 更新
当通过索引访问时,PostgreSQL 发现 ItemId[1] 指向的 tuple 有 HOT 链,会沿着 t_ctid 链向前追踪,找到对当前事务可见的最新版本。HOT 更新减少了索引膨胀,页剪枝则让 HOT 链产生的死元组能被快速回收,两者配合使得高频更新场景下性能大幅提升,减少对 VACUUM 的依赖。│ │ └─ 页剪枝 → 清理链中死元组,回收空间。│ YES → HOT 更新(同页,不更新索引)HOT 是一种优化机制,允许在。
2026-03-25 17:40:40
432
原创 K8S-ingress-nginx
metadata:labels:---metadata:labels:---metadata:labels:---kind: Rolemetadata:labels:rules:- ""resources:verbs:- get- ""resources:- pods- secretsverbs:- get- list- watch。
2025-12-08 17:49:30
591
原创 Docker启动各种数据库
修改配置文件,如修改root密码,echo -n "Wzx#123456" | sha256sum | tr -d '-'
2025-12-08 17:45:20
314
原创 MySQL新版本新特性
可以通过restrict_fk_on_non_standard_key=OFF开启。该参数被启用,使用authentication_policy参数来替代。gtid格式变更为:UUID:TAG:NUMBER。默认不支持,如需开启则需明确指定参数开启。在数据库权限授予中使用通配符将被移除,该命令被移除,使用下面命令替代。
2025-11-27 10:32:38
261
原创 MongoDB Replication配置
Replica Set包含数据节点和可选的仲裁节点,一个Replica Set中只包含一个Primary,只有Primary可以接受读写操作,默认Secondary是不能读写的(读需要配置db.slaveOk()才可以读)。如果优先级设置为0,那么这个成员不会永远不会被选举成为Primary,它也不需要其他成员为它投票。为了避免当Primary宕掉后,整个Replica Set无法选举出新的Primary,Replica Set变成只读,需要在一个数据中心放置大部分Replica Set中的成员实例。
2025-11-05 17:45:10
1084
原创 MySQL异常恢复-drop表恢复
MySQL异常恢复-drop表恢复恢复思路: 1、通过延迟从库进行恢复 2、通过备份+时间点恢复 3、通过undrop_for_innodb进行恢复 4、通过磁盘恢复工具找回相应的文件,然后想办法恢复概述:此主要介绍undrop_for_innodb的恢复方法环境:mysql 5.7.26OS:CentOS Linux release 7.6.1810mysql参数:innodb_file_per_tab...
2020-06-24 15:53:30
4682
原创 gdb、strace、pmap、perf等跟踪调试工具使用介绍
gdb调试跟踪一、命令介绍 命令 命令缩写 命令说明 list l 显示多行源代码 break b 设置断点,程序运行到断点的位置会停下来 info i 描述程序的状态 run r 开始运行程序
2020-06-08 23:16:05
7377
转载 Nginx 优化
Nginx 优化https://mp.weixin.qq.com/s/Vf4mGUG4mUeig9MF4H2Iwghttps://mp.weixin.qq.com/s/7rzB5Xet8jLzKiax2hoOGQ一、nginx 配置文件中优化1. worker_processes 8;nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。2. worker_cpu_affinity 00000001 00000010 00000100 000
2020-06-03 15:23:13
462
原创 MySQL SYS数据库说明
MySQL SYS数据库说明此以MySQL5.7说明,实际和8.0区别不大Sys库所有的数据源来自:performance_schema。目标是把performance_schema的把复杂度降低,让DBA能更好的阅读这个库里的内容。让DBA更快的了解DB的运行情况Sys库下有两类视图字母开头: 适合人阅读,显示是格式化的数x$开头 : 适合工具采集数据,原始类...
2020-04-30 16:38:50
696
原创 MySQL性能监控的AWK脚本
MySQL性能监控的AWK脚本/usr/local/mysql57/bin/mysqladmin -P3306 -uroot -S /data/mysql57/3306/sock/mysql3306.sock -p -r -i 1 ext |\awk -F"|" \"BEGIN{ count=0; }"\'{ if($2 ~ /Variable_name/ && ((++...
2020-04-30 15:47:44
292
转载 【mysql】关于ICP、MRR、BKA等特性
【mysql】关于ICP、MRR、BKA等特性https://www.cnblogs.com/chenpingzhao/p/6720531.html 转载一、Index Condition Pushdown(ICP)Index Condition Pushdown (ICP)是mysql使用索引从表中检索行数据的一种优化方式,从mysql5.6开始支持,mysql5.6之前,存储引擎会...
2020-04-30 15:24:35
261
原创 show engine innodb status解读
show engine innodb status解读参考https://www.cnblogs.com/xiaoboluo768/p/5171425.htmlshowengineinnodbstatus是mysql提供的一个用于查看innodb引擎时间信息的工具,就目前来说有两处比较常用的地方一、死锁分析二、innodb内存使用情况1、Per second average...
2020-04-30 15:12:29
9006
原创 mysql命令工具使用的一些技巧
mysql命令工具使用的一些技巧1、pager命令类似shell里的管道命令,可以对输出结果进行处理,可以加上所有的shell命令进行处理pager cat | grep INNODBPAGER set to 'cat | grep INNODB'root@testdb mysql3306.sock> show engine innodb status \G2020-04-...
2020-04-30 15:08:39
173
原创 shell编程常用
shell编程常用字符串截取${variable##*string} 从左向右截取最后一个string后的字符串 ${variable#*string} 从左向右截取第一个string后的字符串 ${variable%%string*} 从右向左截取最后一个string后的字符串 ${variable%string*} 从...
2020-04-30 14:46:32
367
原创 MySQL 5.6, 5.7, 8.0的新特性
MySQL 5.6, 5.7, 8.0的新特性https://www.cnblogs.com/ivictor/p/9807284.htmlMySQL发展历程对于MySQL的历史,相信很多人早已耳熟能详,这里就不要赘述。下面仅从产品特性的角度梳理其发展过程中的里程碑事件。1995年,MySQL 1.0发布,仅供内部使用。1996年,MySQL 3.11.1发布,直接跳过了MySQ...
2020-04-30 13:52:22
405
原创 Xtrabackup工具的安装与使用
Xtrabackup工具的安装与使用1、Xtrabackup介绍Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁);mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,mysqldump备份就不太适合。xtrab...
2020-04-30 13:47:27
1369
原创 MySQL表空间传输
MySQL表空间传输1、FLUSH TABLES t1 FOR EXPORT ;此时该表会锁表,可以select,但不能DML操作在该数据库目录下会生成t1.cfg文件2、拷贝t1.cfg、t1.frm、t1.ibd文件,以做备份3、目标库新建该表t1.frmmysqlfrm --diagnostic t1.frm 获取DDL语句 (mysqlfrm是mysql-...
2020-04-30 09:47:13
361
转载 mha配置参数详解:
mha配置参数详解: 参数名字 是否必须 参数作用域 默认值 示例 hostname Yes Local Only - hostname=mysql_server1, hostname=192.168.0.1, etc ip No Local Only gethostbyname($hostname) ip=1...
2020-04-29 17:14:51
925
转载 mha安装使用手册
mha安装使用手册注:目前mha最新的版本代码已经不放到google code网站了,而是放在github上,最新的版本为0.57,github链接如下:mha manager:https://github.com/yoshinorim/mha4mysql-managermha node:https://github.com/yoshinorim/mha4mysql-node1、安装...
2020-04-29 17:12:47
1067
转载 MySQL 各种超时参数的含义
MySQL 各种超时参数的含义今日在查看锁超时的设置时,看到show variables like '%timeout%';语句输出结果中的十几种超时参数时突然想整理一下,不知道大家有没有想过,这么多的timeout参数,到底有什么区别,都是做什么用的呢?MySQL [(none)]> show variables like '%timeout%';+---------------...
2020-04-29 17:10:53
1516
转载 MySQL InnoDB Update和Crash Recovery流程
MySQL InnoDB Update和Crash Recovery流程概要信息 首先介绍了Redo,Undo,Log Sequence Number (LSN),Checkpoint,Rollback Pointer (ROLL_PTR),Transaction ID (TRX_ID),Transaction Serialization Number(TRX_NO) 是什么? 然后介绍了...
2020-04-29 15:34:33
318
转载 Oracle x$表
[K]ernel Layer[2]-Phase Commit[G]lobal [T]ransaction [E]ntry...
2019-04-01 09:03:40
878
原创 Oracle 11g Dataguard(物理备库安装)
一、Oracle 11g Dataguard(物理备库安装)个人建议:为使得在主备切换后,对应用影响最少,建议客户端配置使用DNS解析主库IP,或者配置多个IP地址(主库+备库地址),且创建服务名(使用触发器当角色为主库时开启服务)环境描述主库DG1: 192.168.10.21 dg1.zytk.com dg1 数据库ORACLE_SI...
2018-12-31 19:24:27
1159
原创 Mysql主从复制搭建(传统模式)
mysql主从复制搭建(传统模式)概述:mysql 5.7.19os : centos6.7主库和从库分别搭建好数据库 1、主库配置1.1 修改/etc/my.cnf配置文件[mysqld]log-bin = mysql-binserver-id = 1 ####各节点必须唯一binlog-do-db = testdb ...
2018-12-30 19:04:46
652
原创 OGG11.2.0.1安装与实验
OGG安装与配置实验环境:操作系统RHEL6.5x64Oracle版本: 11.2.0.4OGG版本:11.2.0.1 for linux-x64 ogg1(源端): 数据库实例已经安装完成。 oracle_sid:zytk35ogg2(目标端): 只安装了数据库软件 oracle_sid:...
2018-12-30 18:59:44
1977
1
原创 OGG12C安装与配置
OGG12C安装与配置ogg12.2.0.1 仍旧可以支持oracle 11.2.0.4,但是需要打补丁17030189,且舍弃了一些参数。针对oracle11.2版本,个人建议还是用早期版本 注意点:保证捕获开始点和初始化数据加载点 数据的一致。实验一概述此实验以配置Integrated extract和Integrated replicate方式进行配置环境: ...
2018-12-30 18:58:07
5397
原创 Oracle11G数据库重演测试
数据库重演测试数据库版本:11.2.0.3OS: rhel6.5由于数据库服务器硬件调整,参数调整,为测试新硬件环境数据库是否满足性能需求,可通过数据库重演来进行测试。一下是否生产环境扩内存、调整参数,测试数据库性能的影响。详细测试步骤概述本次测试通过数据重演的方式,在主库抓取一段时间的工作量,然后数据卫士转换为快照备库,然后在快照备库做必要的变更,然后重演主库的工作量...
2018-12-30 18:40:04
652
原创 OGG之logdump工具介绍
logdump工具介绍 Logdump 9 >open ./dirdat/si009180 ---打开文件Logdump 15 >ghdr on --查看header record信息 Logdump 16 >detail on ---查看列信息,包括number和长度Logdump 17 >detail data ---...
2018-12-30 17:56:41
3671
原创 RAC环境中部署OGG,并使用集群管理OGG资源
RAC环境中部署OGG环境:2节点rac(testrac1,testrac2)概述:2节点分别部署ogg,可以把dirdat、dirchk等文件放在共享存储,使得所有节点都能访问。使用GI来管理ogg资源共享存储: /dev/sdc1 (也可以使用dbfs等共享文件) 1、testrac1、testrac 2节点分别安装好ogg软件mkdir /u01/app/ogg ...
2018-12-30 17:34:12
3005
原创 Oracle跟踪与调试之oradebug、dbms_system等
oradebug跟踪调试oradebug help ----查看帮助oradebug setmypid --跟踪当前会话oradebug setospid --跟踪系统进程oradebug setorapid --跟踪ORACLE进程oradebug unlimit --取消trace文件大小限制 oradebug tracefile_name --查...
2018-12-29 22:49:05
975
MySQL异常恢复-drop表恢复.docx
2020-06-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅