随笔分类 -  postgres

摘要:1)8种级别锁 2)互斥关系 转自熊灿灿的资料 3)使用示例 参考https://shiroyasha.io/understanding-postgresql-locks.html session1: BEGIN;ALTER TABLE users ADD age int; session2: SE 阅读全文
posted @ 2022-03-16 23:26 stupidstan2019 阅读(149) 评论(0) 推荐(0)
摘要:【参考】 https://zhuanlan.zhihu.com/p/72543802 【调用点】 参数: slock_t mutex; typedef unsigned int slock_t; 【逻辑】 1)加锁逻辑 1.1)当次数大于100,随机睡1ms-1s逻辑 2)放锁逻辑 阅读全文
posted @ 2022-03-16 23:05 stupidstan2019 阅读(92) 评论(0) 推荐(0)
摘要:【测试】 1)第一个session执行insert语句 2)第二个session执行select 停在这里 睡在这个对象上 【如何唤醒】 参考https://zhuanlan.zhihu.com/p/73517810 阅读全文
posted @ 2022-03-16 22:52 stupidstan2019 阅读(28) 评论(0) 推荐(0)
摘要:参考https://www.modb.pro/db/11330 【测试sql】 1)创建表 create table account ( id int, first_name varchar(100), last_name varchar(100), address varchar(100), mo 阅读全文
posted @ 2022-03-16 21:39 stupidstan2019 阅读(68) 评论(0) 推荐(0)
摘要:【参考】 https://www.cnblogs.com/flying-tiger/p/8414374.html 先写最简单的读写基本流程 【流程】 session1:drop table t1; session2:select * from t1; 1)session2进程读消息 单独的drop大 阅读全文
posted @ 2022-03-15 23:43 stupidstan2019 阅读(47) 评论(0) 推荐(0)
摘要:说明 analyze命令把每列信息写入到pg_statistic 测试 create table t1 (id int); insert into t1(id) values(1); analyze ​VERBOSE t1 1)执行第一次 rmgr: Heap len (rec/tot): 115/ 阅读全文
posted @ 2022-03-09 23:27 stupidstan2019 阅读(322) 评论(0) 推荐(0)
摘要:【申请调用栈】 数据结构 阅读全文
posted @ 2022-02-13 14:53 stupidstan2019 阅读(173) 评论(0) 推荐(0)
摘要:【问题】 可重复读隔离级别右边更新成功 串行化隔离级别右边报错 【调用栈】 1)T6失败 (sxact)->flags & SXACT_FLAG_DOOMED) != 0#MySerializableXact.flags=8, SXACT_FLAG_DOOMED=8#&结果不等于0 T5 end时把 阅读全文
posted @ 2022-02-13 13:34 stupidstan2019 阅读(40) 评论(0) 推荐(0)
摘要:【和不可重复读区别】 https://cloud.tencent.com/developer/article/1450773 [phantom read概念] A transaction re-executes a query returning a set of rows that satisfy 阅读全文
posted @ 2022-02-13 12:10 stupidstan2019 阅读(162) 评论(0) 推荐(0)
摘要:【实验】 【逻辑】 存储数据 内存数据 阅读全文
posted @ 2022-02-13 00:27 stupidstan2019 阅读(28) 评论(0) 推荐(0)
摘要:【实验】 session1BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; select count(1) from t1; session2 insert into t1(id) values(1); 结果:session1读不到session2 阅读全文
posted @ 2022-02-12 23:26 stupidstan2019 阅读(40) 评论(0) 推荐(0)
摘要:【pg不支持读未提交】 [session1] BEGIN;INSERT INTO my_table(id,value) VALUES (1,'something'); [session2] BEGIN TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SEL 阅读全文
posted @ 2022-02-12 22:32 stupidstan2019 阅读(134) 评论(0) 推荐(0)
摘要:1)创建文件调用栈 2)初次写文件内容 2.1)写叶子节点0页 调用栈 a)根据heapBlk=0,计算出0页的位置 addr.level = FSM_BOTTOM_LEVEL; addr.logpageno = heapblk / SlotsPerFSMPage; #0 *slot = heapb 阅读全文
posted @ 2022-02-12 15:35 stupidstan2019 阅读(100) 评论(0) 推荐(0)
摘要:【测试步骤】 session1 begin; select * from t1 for update; session2 update t1 set id=2 ; 【流程】 1)session1, 给tuple设置Xmax 2)session2,检测tuple状态 result = HeapTupl 阅读全文
posted @ 2022-01-08 15:29 stupidstan2019 阅读(107) 评论(0) 推荐(0)
摘要:【写入】 【启动初始化】 【回放】 阅读全文
posted @ 2022-01-03 20:44 stupidstan2019 阅读(38) 评论(0) 推荐(0)
摘要:【场景和触发】 初始化一个数据页后(初始化索引页时,表页重构时) drop table if exists t_index;create table t_index (id int,c1 char(8));CREATE INDEX my_pg_index ON t_index USING btree 阅读全文
posted @ 2022-01-03 20:33 stupidstan2019 阅读(55) 评论(0) 推荐(0)
摘要:【调用函数】 阅读全文
posted @ 2022-01-01 16:59 stupidstan2019 阅读(37) 评论(0) 推荐(0)
摘要:【对比不带limit】 执行树结构从单独的顺序扫描 变为 1)根节点limit 2)左子树(顺序扫描) 右子树(空) 【执行过程】 【limit的状态】 https://www.bianchengquan.com/article/362640.html 阅读全文
posted @ 2022-01-01 10:41 stupidstan2019 阅读(264) 评论(0) 推荐(0)
摘要:1)原始数据 storage只有base文件 2)heap类型的xlog13个 3)btree27个 阅读全文
posted @ 2021-12-29 22:26 stupidstan2019 阅读(49) 评论(0) 推荐(0)
摘要:【select 1】 1)主要函数 2)调用栈 3)往libpq写数据调用栈 4)函数备注 【select * from t1】 1)函数备注 2)调用栈 阅读全文
posted @ 2021-12-29 22:19 stupidstan2019 阅读(34) 评论(0) 推荐(0)