Skip to content

Latest commit

 

History

History
74 lines (45 loc) · 3.74 KB

20240426_01.md

File metadata and controls

74 lines (45 loc) · 3.74 KB

十几年前写的<PostgreSQL性能优化综合案例讲>文章, 想不到被用到大学数据库实验课了

作者

digoal

日期

2024-04-26

标签

PostgreSQL , PolarDB , DuckDB , 数据库原理 , 数据库实验 , 大学 , flowchat , 模块 , 性能优化综合实验


背景

十几年前写的文章, 想不到被用到大学数据库实验课了

最近去温州大学交流, 黄老师偷偷把我拉到一旁, 掏出了一本秘籍《数据库实验手册》, 让我给学生们讲讲, 我有点懵为什么要我来给学生讲, 原来老师借鉴了我十几年前写的《PostgreSQL性能优化综合案例讲解》的文章, 老师带着学生在实验课上做了里面的实验, 所以想让我说明一下为什么要这么设计? 老师真是用心良苦.

文章原文请参考:

这个优化实验的业务场景很简单, 用户登陆和用户退出, 查询用户信息, 记录用户行为, 更新用户当前的状态. 整个优化涉及到十几个步骤, 实际上覆盖到了数据库的大部分模块, 老师挑选这个实验给同学们做真的用心良苦.

涉及的一些模块/知识点:

  • 网络交互
  • sql parser
  • sql rewrite/优化
  • 协议/simple query|绑定变量
  • IO
  • buffer pool/page cache
  • 锁管理
  • wal 持久化行为
  • cbo: 索引/全表扫描 等
  • 索引结构和索引深度
  • 业务或架构侧行为: 读写分离
  • 业务或架构侧行为: 拆表
  • 业务或架构侧行为: 表空间/IO均分/lvm
  • 业务或架构侧行为: 拆库
  • 业务或架构侧行为: 连接池

建议还可以给同学们参考一下PostgreSQL flowchat : https://www.postgresql.org/developer/backend/

以上方法是我们在了解数据库原理, 把数据库当成白盒后的性能优化思路, 那如果是个黑盒呢? 可以参考如下方法:

digoal's wechat