自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liuzhilong的博客

作为一个dba,分享数据库知识,总结运维经验~~有时也写写别的

  • 博客(335)
  • 收藏
  • 关注

原创 pg事务:子事务

什么是子事务?子事务有什么用?为什么pg中不推荐使用子事务?

2023-05-21 09:26:44 915

原创 pg事务:2PC

分布式事务实现方案很多,2PC是其中最基础也是最常见的。分布式事务包括原子提交、原子可见性、全局一致性,2PC只是原子提交的实现方案。

2023-05-20 16:59:04 755

原创 pg事务:multixact

在对同一行加锁时,元组上关联的事务ID可能有多个,pg将多个事务ID组合起来用一个MultiXactID来管理

2023-05-20 16:55:46 987

原创 pg事务:可见性检查

pg源码分析事务可见性检查实现

2023-05-20 16:49:07 1106

原创 pg事务:快照

快照是MVCC的实现方式,通过分析源码解读pg快照的获取和其原理

2023-05-20 16:47:06 1587 1

原创 pg事务:事务相关元组结构

pg元组header的内容及其含义,xmin、xmax、infomask、hintbits等与事务的关系

2023-05-20 16:31:36 1152

原创 pg事务:事务ID

pg事务ID机制,事务如何对比新旧,事务id回卷问题等等

2023-05-20 16:12:19 1989

原创 pg事务:事务的处理

pg事务处理机制,事务块、事务状态流转原理

2023-05-20 16:01:44 1267

原创 pg事务:隔离级别历史与SSI

ANSI SQL-92定义的隔离级别和异常现象确实对数据库行业影响深远,甚至30年后的今天,绝大部分工程师对事务隔离级别的概念还停留在此,不过数据库的终极目标不是RC

2023-05-20 15:36:41 1349

原创 PG事务:隔离级别基础

在众多关系型数据库中,pg的事务机制非常有特色,了解pg的事务机制是了解pg数据库运行原理的关键。

2023-05-20 15:24:46 897

翻译 在postgresql中打开和关闭autovacuum

在postgresql中如何打开和关闭autovacuum。关闭后autovacuum还会做事吗?

2023-05-19 21:34:24 702

翻译 autovacuum调优的基本知识

autovacuum调优的基本知识

2023-05-19 21:27:30 724 1

翻译 写偏序长啥样?

本文详细讲述了写偏序的逻辑概念,以及快照隔离

2023-05-17 20:26:57 168

翻译 理解弱隔离是一个严重的问题

数据库应该朝着可序列化前进,而真实的情况是,我们沉浸于使用RC或SNAPSHOT隔离。而应用程序却没有发现自己的数据已经异常

2023-05-16 20:41:25 45

翻译 事务的历史

大神总结事务隔离级别的历史:ANSI SQL92标准的问题、什么是快照隔离级别、什么是SSI、数据的终极隔离级别是可序列化、什么是真正的可序列化?

2023-05-15 21:05:37 79

翻译 src/backend/access/heap/README.HOT翻译

Heap Only Tuples (HOT) 源码内的readme翻译。postgresql官方对HOT的描述和实现要点

2023-05-12 22:08:33 70

翻译 src/backend/access/transam/README翻译

事务相关源码readme翻译

2023-05-10 22:14:29 178

原创 读书笔记——《2001太空漫游》

《2001太空漫游》读后感,科幻小说标杆!

2023-05-05 22:35:46 1101

原创 另一个世界的人

多多陪伴家人吧

2023-04-15 23:49:06 540 1

原创 读书笔记——《再见,平庸时代》

人工智能时代,AI会如何影响我们的生活?我们该如何与人工智能竞争和合作?如何在这个时代立足?

2023-03-14 21:49:30 1467 5

原创 数据库面试题总结——DBA面试battle指南

作者总结历年dba面试的问题和解答。并不是全方位覆盖所有知识点,仅汇总较常见的dba面试问题

2023-03-07 23:01:12 1413

原创 pg内功修炼:逻辑复制

postgresql逻辑复制知识点详解,逻辑解析、复制槽、output plugin、replica identity、发布订阅、事务snap落盘、解析溢出spill···

2023-03-01 23:28:03 1346

原创 读书笔记——《马斯克》

我宣布,马斯克,我偶像

2023-02-28 23:38:00 351

原创 ogg搭建pg-oracle同步——实操步骤

使用ogg配置pg到oracle的数据同步,详细实施步骤

2023-02-27 23:36:55 758

原创 读书笔记——《富爸爸穷爸爸》

穷人为钱工作,富人让钱为自己工作。我该怎样工作?

2023-02-26 23:49:46 1452 1

原创 ogg搭建oracle-pg同步——实操步骤

使用ogg搭建pg到oracle的数据同步,详细操作步骤

2023-02-26 16:46:17 1556

原创 读书笔记——《Sapiens : A Brief History of Humankind》

《人类简史》从人类直立行走到到上帝。宗教、经济、社会、科学无所不含,非常棒的一本书,充实历史观

2023-02-19 23:49:34 298

原创 读书笔记——《educated 》和《atomic habits》

《educated 》《atomic habits》读后感,开启阅读后的读书记录

2023-02-07 19:22:46 348

原创 我是如何考上武汉大学在职研究生的

万字长文讲述在职研究生考研的方方面面

2022-06-19 10:09:36 1538 2

原创 PG流复制详解

什么是PG流复制?Streaming Replication是pg9.0开始提供的传递WAL日志的方式,只要primary库一产生日志,就会立马传递到standby库。在pg9.0之前,pg只能一个个传送wal日志(log shipping),备库至少比主库落后一个wal日志pg流复制进程wal sender:wal sender存在于主库。wal sender进程将主库最新LSN到备库最新的LSN之间的wal 传递给备库wal receiver:wal receiver存在于备库。wal re

2021-08-30 17:22:28 7655

原创 pg_basebackup初识

什么是pg_basebackup?1.pg_basebackup是pg自带的备份工具,它用来做pg的基础备份。pg_basebackup可以用作PITR,也可以用来构造log-shipping standby和stream standby2.pg_basebackup总是备份整个pg,不能做单独的database备份。如果要单独备份某个database或者schema,应该用pg_dump。3.pg_basebackup会备份除了临时文件的所有文件,包括data目录下的所有数据文件,配置文件等等

2021-08-09 11:11:20 2198 1

原创 pg_rewind详解

什么是pg_rewind?pg_rewind是pg提供的工具,当2个pg实例时间线(timeline)出现分叉时,pg_rewind可以做实例间的同步。(比如主库运行的情况下,备库failover后运行了一段时间,此时主备的时间线就出现了分叉)pg_rewind会对比两者的大小,然后把大小不一样的文件从源拷贝到目标,包括配置文件。但是它不会对比没有发生改变的文件,所以pg_rewind在比较大的库,更改少量数据时,运行效率较高。pg_rewind可以运用在备库failover后,备库即时运行一段时间

2021-07-30 16:51:15 4655 1

原创 PG主从搭建——简易版

此次主从搭建全部使用pg9.6,在同一个机器上安装主库和从库,主库从库分别使用不同的端口1 环境准备1.1 软件准备文件:postgresql-9.6.17.tar.bz2(直接官网下载)解压:tar -xvf /pg/soft/postgresql-9.6.17.tar.bz2软件目录:/pg/soft/postgresql-9.6.17安装目录:(prefix指定安装目录)/pg/pg96主库data目录:/pg/pg96data_pri从库data目录:/pg/pg96da

2021-07-27 17:41:55 1000

原创 count(1),count(col1),count(*)的区别

1.count(1)=count(*),计算的是表的真实行数,无论行是否为空2.count(col1)计算的是col1列不为空的行数3.在mysql中,count(1),count(col1),count(*)均访问二级索引4.在oracle中,仅count(col1)访问索引,count(1)和count(*)均访问主键或表5.访问方式的区别是因为mysql索引存储了null值,oracle索引没有存储null值。oracle必须访问主键或表才可以count出表的真实行数,mysql则访问

2021-06-03 15:18:42 549 1

原创 innodb锁详解

如果是索引唯一扫描或主键唯一扫描,innodb只会上行锁锁住一行数据。如果是索引范围扫描或主键范围扫描,innodb会上临键锁。唯一索引同样会有索引范围扫描,仅在等值条件下扫描唯一索引(或主键)才会触发唯一扫描。临键锁会锁住“小于范围的最大存在值和大于范围的最小存在值”,如果没有实际存在值,innodb会给临键锁“超大值”或“超小值”去锁一个大范围。所以在某些情况下,一个update可以锁住整张表。

2021-05-24 17:33:19 1232

原创 rr模式下的快照读--更新操作仍然会导致事务前后数据不一致

rr快照读只会读取当前事务下数据的“历史态”,但当更新(dml)时,事务会去查看“当前态”某些数据行,验证数据的可执行性(如主键冲突、唯一性约束冲突等等)。一但有“当前态”的行数据被更新,这个行就会和当前”历史态“数据合并成新的”历史态“,此后该事务的快照读均是读取的新”历史态“快照。

2021-05-19 16:17:57 631 1

原创 关于组合索引的第二列为in时是否可用走索引的问题

组合索引的第二列为in时是否可用走索引?当时面试直接把我问蒙了。一般来说in会等价改写成or,然后走索引。比如where a in (1,2)等价于where a=1 or a=2在oracle中肯定会这样去改写,所以该走索引的还是会走索引。但是这个条件放在组合索引的第二列呢?首先等价改写同样成立,比如where a in (1,2) and b=0等价于where (a=1 or a=2)and b=0优化器是否会这样做呢?这只有测试了才知道oracle..

2021-05-11 09:46:36 3957

原创 show engine innodb status和innodb锁监控

innodb monitor是innodb内置的监控模块,用show engine innodb status就可以查看。innodb monitor output可以输出在错误日志中查看更细粒度的innodb锁信息,需要打开innodb_status_output_locks

2021-05-10 17:45:58 1712

原创 mysql内存溢出分析办法

mysql内存监控大体归为一下3步1.os角度查看mysql进程内存使用2.mysql服务角度查看mysql内存池使用3.开启performance_schema及内存监控1.从OS进程使用情况出发,查看mysql进程的内存使用情况因为mysql是单进程的,可以通过ps -aux或者top -H -p查看进程的内存使用情况#ps -aux|grep 3306root 40761 0.0 0.0 9696 1632 ? S Mar22 ...

2021-05-08 18:03:08 2323

原创 关于不等于是否可以走索引的问题

以前在学oracle的时候,不等于不能走索引似乎是一条铁律SQL> select a,count(*) from unequal_oracle group by a; A COUNT(*)---------- ---------- 1 2048 2 1create index idx_unequal on unequal_oracle(a);--a=2时,索引的过滤性是比较好的,这里我们取a<&

2021-04-26 17:50:42 7325

事务的历史与SSI-PostgreSQL数据库技术峰会成都站分享

事务的历史与SSI——PostgreSQL数据库技术峰会成都站分享。全篇分享分为4个部分:事务的基础、事务的历史、SSI理论知识、PostgresSQL中的SSI。分享内容的主要思路是从事务的历史推进到一些92标准中不存在的异象,再到消灭这些异象可以怎么做,再到pg库中的SSI是怎么做的。

2023-06-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除