自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yanzongshuai的专栏

专注于MySQL、MariaDB、Percona、PostgreSQL数据库及Aerospike等nosql数据库

  • 博客(441)
  • 论坛 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 我的微信公众号二维码

2019-05-18 20:25:00 562

原创 PG:checkpoint是什么

PG:checkpoint是什么Checkpoint是PG中的核心概念。然而会有用户对此比较陌生,不知道如何调优。本文解释checkpoint及如何调优,希望对数据库内核理解有所帮助。PG...

2021-02-21 19:05:34 15

原创 PG备份恢复工具pg_probackup

PG备份恢复工具pg_probackuppg_probackup是管理PG数据库集群备份和恢复的工具。用于执行周期性备份PG实例。兼容PG9.5,,96,10,11,12,13。和其他备份...

2021-02-18 22:15:48 29

原创 腾讯2021sigmod论文Spitfire分析

Spitfire:易失和非易失性内存的三层buffer管理Spitfire: A Three-Tier Buffer Manager for Volatile and Non-Volati...

2021-02-06 21:21:42 82

转载 模式匹配

模式匹配如果在不设置全文搜索的情况下,如何过滤查询结果,您会选择哪种方法?LIKE也许是最容易想到的:SELECT*FROMpeopleWHEREnameLIKE'...

2021-01-31 21:11:04 28

原创 监控复制:PG_STAT_REPLICATION

监控复制:PG_STAT_REPLICATIONPG复制(同步和异步复制)是数据库社区最普遍的功能之一。现在用户通过高可用集群或者使用复制建立只读副本来分散工作负载。这里需要注意,如果使...

2021-01-29 22:04:45 44

原创 基于ARM的AWS EC2实例上的PG跑起来性能怎么样?

基于ARM的AWS EC2实例上的PG跑起来性能怎么样?ARM处理器在数据中心中的应用一直是一个热门话题,我们很想看看他在PG中表现怎么样。用于测试和评估基于ARM的服务器,其可用性一直...

2021-01-26 23:54:29 74

原创 WBL论文解析

后写日志Write behind logging基本思想NVM的优点是可字节寻址、接近内存的高性能、顺序访问和随机访问差距不大。2016年VLDB会议上《write behind log...

2021-01-22 23:14:58 74

翻译 PG通过表访问方法API如何执行顺序扫描

PG通过表访问方法API如何执行顺序扫描引言PG中有很多方法检索数据并返回给用户。依赖于用户的SQL语句,查询计划模块生成最有方法以检索请求的数据。顺序扫描是用户请求大量数据时或者当表没...

2021-01-20 21:38:33 39

翻译 PG中的oid和relfilenode之间的关系

PG中的oid和relfilenode之间的关系PG中的表由一个relfilenode值,即磁盘上表的文件名(除了外表和分区表)。通常情况下可以在Pg_class表找到这个值,然而也会查...

2021-01-18 08:00:00 58

翻译 PG14中的idle_session_timeout

PG14中的idle_session_timeout新添加的配置参数idle_session_timeout和idle_in_transaction_session_timeout类似,...

2021-01-17 13:33:51 51

翻译 PG:INT4 VS. FLOAT4 VS. NUMERIC

PG:INT4 VS. FLOAT4 VS. NUMERIC关系型数据库中数据类型是一个重要话题。PG提供很多不同类型,但并不是所有类型都相同。根据需要实现的目标,可能应用需要不同列类型...

2021-01-15 22:08:49 52

翻译 PG空闲连接对性能的影响

PG空闲连接对性能的影响该系列的第一篇为:PG空闲连接的资源消耗:https://amazonaws-china.com/cn/blogs/database/resources-cons...

2021-01-13 23:00:16 75

翻译 仅对部分数据构建索引

索引会占用比想象中的还要大的空间,有好几次我向表中添加索引以增加速度,但是对磁盘使用量的快速增长感到震惊。虽然索引是构建在列上,但是并不是每个行记录都需要在索引里面,这是部分索引part...

2021-01-10 18:11:47 24

翻译 NOW()会返回时区信息

Getting NOW() in your preferred timezone执行NOW()函数获取当前时间时,可以获得日期和服务器所在的时区。很多服务器运行在UTC/GMT,如果用户...

2021-01-03 15:38:05 65

翻译 检测表中行记录是否已存在

检查PG表中行记录是否已存在,可通过发起一个select看下是否有行记录返回,但是依赖于如何做到这点,返回的结果可能比较奇怪或者不太高效。EXISTS子查询表达式可用于明确确定另一个查询...

2021-01-02 18:05:18 26

翻译 使用JDBC时,加速批量insert

java开发者使用PG jdbc驱动时,可以指定reWriteBatchedInserts连接参数来加速批量操作。如果reWriteBatchedInserts=true...

2021-01-01 15:52:29 122

原创 PG中的blob cleanup

PG中的blob cleanupPG提供了一个很好的BLOB接口,得到了广泛应用。然而最近我们遇到了各种客户遇到的问题,有必要对PG如何处理blob进行一次思考,尤其是BLOB清理。PG...

2020-12-30 22:49:00 70 1

原创 postgresql email列表对NVM WAL BUFFER的讨论

本文介绍NVM WAL BUFFER的email list,详细了解开发者对此的讨论,以此深入了解机制。1、Heikki使用mmap()/msync()映射WAL文件,替代WAL bu...

2020-12-29 23:29:23 109

翻译 NVM WAL BUFFER邮件讨论

本文介绍NVM WAL BUFFER的email list,详细了解开发者对此的讨论,以此深入了解机制。1、Heikki 使用mmap()/msync()映射WAL文件,替代WAL buffer。如果读memory-mapped文件有IO错误时,进程会通过SIGBUS杀掉。重新阅读了[1][2],使用WAL段文件映射到内存作为WAL BUFFER,依赖于WAL文件是否放在PM上切换CPU指令或者msync()用于持久化WAL记录。听起来挺合理,但是我没测试过。我会尝试与NVM WA...

2020-12-29 23:19:34 52

原创 PG获取文件大小的方式

有三种方式,下面依次介绍。1、通过元命令获取表文件大小通过\dt+可以得到该表大小。该元命令会转换成SQL语句去执行,实际上是通过pg_table_size函数进行获取。该函数调用cal...

2020-12-18 00:00:00 39

原创 综合指南:postgresql shared buffers

综合指南:postgresql shared buffers本文主要针对下面问题详述PG的共享内存:PG中需要给共享内存分配多少内存?为什么?非常奇怪,为什么我的RDS PG需要使用系统...

2020-12-17 19:02:58 96

原创 Storage Developer Conference 2020总结

Storage Developer Conference 2020有两篇关于PM适配PG的议题。一篇是之前总结过的memhive,一篇为NVM WAL BUFFER。Memhive架构M...

2020-11-20 22:27:27 149

原创 通过Linux设备映射器使用持久内存设备

通过Linux设备映射器使用持久内存设备IO Alignment Considerations传统的存储设备例如HDD,SSD,nvme,SAN LUNS等以blocks为单位提供存储功...

2020-11-18 22:31:45 100 2

原创 pmdk如何在线动态扩展pool大小

一、问题由于通过pmdk库使用PM进行编程时,需要创建文件,然后将其映射到内存,这个文件大小是固定的。那么当这块PM内存块使用完后,需要重新映射。但是当前用户进程扩展后的大小对其他用户进...

2020-11-09 23:33:06 101

原创 持久内存+RDMA让远程数据不再远-总结

持久内存-RDMA让远程数据不再远第一届「中国云计算基础架构开发者大会」(以下简称 CID)将在 2020 年 10 月 25 日举办。会中看到有新硬件PM结合RDMA的议题,这是数据库...

2020-11-01 12:32:17 146

原创 基于PMEM的PG数据库Memhive白皮书

基于PMEM的PG数据库Memhive白皮书概要PG是一个广泛应用的开源数据库,从财务管理、地理信息、水务系统到气象服务等等。可部署在本地,也可以部署在云上。PG不仅在事务处理中有强大能...

2020-10-24 22:04:17 140

原创 PG13并行vacuum

PG13并行vacuumVacuum是PG的一个重要功能用于回收表和索引中的死记录。如果没有这个功能,PG就会持续膨胀。本文介绍VACUUM命令中的PARALLEL选项,该选项于PG13...

2020-10-03 13:55:33 122

原创 PG13 B-tree索引去重

PG13:btree索引去重正文PG13一个重要的特性就是Btree索引去重。使得物理文件大小更小,减小IO,帮助提升select性能。GIN索引,如果不同行的索引键相同,那么会存储一个...

2020-09-16 22:53:31 114

原创 持久内存指令(PMDK)简介

持久内存指令(PMDK)简介PMDK函数libpmem库主要特性是提供一种将脏数据刷写到持久内存的方法。常用的函数主要包括pmem_flush、pmem_drain、pmem_memcp...

2020-09-11 22:52:54 467

原创 有进步也更需要接着进步

2020-08-14 19:08:02 209

翻译 PG的密码安全

PostgreSQL错误日志文件中的密码大家都不希望在错误日志文件中出现用户密码。PG使用SQL查询管理用户账户,包括密码。如果启用log_statement,log_min_error...

2020-08-01 20:32:37 185

原创 PostgreSQL可拔插存储引擎表定义机制

Postgresql12开始支持可拔插存储引擎,即可拔插表访问方法。目前仅仅支持heap一种表访问方法。新增了pg_am和pg_proc系统表用于存储表访问方法的元数据。本文介绍创建表时...

2020-07-29 22:00:19 238

原创 pginspect几个函数

pageinspect作为插件,查看数据库中页内容。这个插件具有的函数功能:get_raw_pageget_raw_page(relname text, fork text, blkno...

2020-07-23 19:33:17 206

原创 Managing Non-Volatile Memory in Database Systems

Managing Non-Volatile Memory in Database Systems一、背景及动机1、几种场景的NVM存储方式NVM-DIRECT将nvm放到内存总线上,直...

2020-07-21 22:26:27 183

翻译 列存zedstore

邮件列表1、动机与目标1)列子集查询性能提升(减小IO)2)相对于heap表,减小磁盘占用空间。Tuple头更小,利用压缩数据3)表数据可以列式存储形式独立于表数据4)完全符合MVCC5...

2020-06-27 20:51:10 206

原创 PostgreSQL文件扩展机制

扩展的底层函数为mdextend。先通过_mdfd_getseg获取指定页号的段文件描述符,然后根据页号计算出偏移,向该偏移出写入一页:大部分情况写入一页0来进行扩展。 ...

2020-06-10 22:57:49 234

原创 同步复制注意点

同步复制情况下,先刷写日志,然后记录clog并持久化,最后才等待备机接收日志后返回的ACK,如果备机有问题的话或复制链路异常,日志传输失败,此时用户客户端的commit会挂...

2020-06-07 18:22:44 178

原创 PostgreSQL异常重启postmaster.pid处理

本文介绍启动时pid文件即锁文件的处理。若异常宕机,导致pid文件残留,那么重启时会自动将这个文件删除吗?main>PostmasterMain->CreateDataDir...

2020-06-05 22:32:21 1623

原创 PMDK vs mmap/memcpy

PMDK进行创建文件时调用函数pmem_map_file,而这个函数底层调用mmap,那么这个PMDK和操作系统函数调用有何不同呢?内容Libpmem的pmem_map_file()支持2M/1G(大页大小)对齐方式,这样能够减少页故障频率。另外,pmem_memcpy_nodrain()通过单指令、多数据指令(SIMD)、NT存储指令(MOVNT)拷贝数据。这样的话,通过libpmem的API函数比mmap()、memcpy()快。Linux4.5及更高版本支持MAP_SYNC和MAP...

2020-05-29 21:04:58 256

空空如也

yzs87的留言板

发表于 2020-01-02 最后回复 2020-01-02

写博客能不能添加个撤销键

发表于 2018-01-04 最后回复 2018-01-06

innodb插入意向锁如何使用

发表于 2015-06-07 最后回复 2015-06-07

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

TA关注的人 TA的粉丝

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