2025-10-17 postgresql 基础入门 , B-tree索引 , 数据库优化 , 索引原理 , 查询加速 , 适用场景 , 常见报错 12 分钟阅读B-tree索引像字典查词一样工作?那哪些数据库查询它能加速,哪些不能?B-tree索引是PostgreSQL默认的索引类型,通过分层结构(根节点、分支节点、叶子节点)快速定位数据,时间复杂度为O(log n)。它支持比较操作符(如=、>)、范围查询(如BETWEEN)、空值判断(如IS NULL)以及锚定开头的模式匹配(如LIKE 'foo%')。适用场景包括加速“等于”查询(如用户登录)、范围查询(如订单统计)和空值查 …阅读更多 cmdragon
2025-10-15 postgresql 基础入门 , MVCC , 并发控制 , 锁机制 , 死锁 , 锁等待 , 事务优化 15 分钟阅读PostgreSQL的“时光机”MVCC和锁机制是怎么搞定高并发的?MVCC(多版本并发控制)是PostgreSQL实现高并发的核心机制,通过为每个事务提供数据快照,解决读-写冲突,实现无锁并发。PostgreSQL的锁机制包括表级锁、行级锁等,行级锁粒度小,并发高。锁等待和死锁是常见问题,死锁由循环等待引起。优化实践包括减少事务长度、合理选择锁级别、使用乐观锁、统一资源顺序、利用NOWAIT和SKIP LOCKED避免等待 …阅读更多 cmdragon
2025-10-14 postgresql 基础入门 , 内存调优 , IO调优 , 并发调优 , 性能优化 , 数据库配置 , 参数调优 14 分钟阅读PostgreSQL性能暴涨的关键?内存IO并发参数居然要这么设置?PostgreSQL性能调优涉及内存、IO和并发参数的合理配置。内存调优中,shared_buffers建议设置为系统内存的25%,work_mem和maintenance_work_mem分别用于查询和维护操作的内存上限。IO调优通过背景写入器和异步IO参数减少磁盘访问延迟。并发调优则通过max_worker_processes和 …阅读更多 cmdragon
2025-10-13 postgresql 基础入门 , PostgreSQL , 范围分区 , 列表分区 , 哈希分区 , 分区剪枝 , 声明式分区 15 分钟阅读大表查询慢到翻遍整个书架?PostgreSQL分区表教你怎么“分类”才高效分区表通过将逻辑上的大表拆分为物理上的小表,提升数据库性能。PostgreSQL支持范围分区、列表分区和哈希分区三种方式,分别适用于按连续区间、枚举值和哈希值拆分数据的场景。分区表的核心优势包括查询加速、批量操作高效、冷数据存储优化和索引性能提升。声明式分区是推荐实现方式,通过创建分区表、分区和索引,结合分区剪枝优化查询性能。维护分区表时,可添加、删除或修改 …阅读更多 cmdragon
2025-10-12 postgresql 基础入门 , GROUP BY , 优化策略 , 窗口函数 , ORDER BY , 功能依赖 , 聚合查询 15 分钟阅读PostgreSQL 查询慢?是不是忘了优化 GROUP BY、ORDER BY 和窗口函数?GROUP BY用于分组聚合,将相同值的行归为一组并计算聚合函数。PostgreSQL支持功能依赖优化,若GROUP BY列为主键或唯一约束,其他依赖列无需加入GROUP BY。GROUPING SETS、CUBE、ROLLUP可一次性生成多组聚合,提升效率。HAVING用于过滤分组结果,WHERE过滤原始行。ORDER BY性能依赖索引,Top-N查询可使 …阅读更多 cmdragon
2025-10-11 postgresql 基础入门 , CTE(公共表表达式) , PostgreSQL性能优化 , 查询优化技巧 , 递归查询 , 索引利用 , 物化与临时表 13 分钟阅读PostgreSQL里的子查询和CTE居然在性能上“掐架”?到底该站哪边?子查询和CTE(公共表表达式)是SQL中处理复杂查询的两种常用方法。子查询嵌套在其他查询中,分为非相关子查询(独立执行)和相关子查询(依赖外部查询)。CTE通过WITH子句定义,生成临时结果集,支持物化(默认生成临时表)和递归查询。CTE的优势在于多次引用时避免重复计算,但会增加I/O开销;子查询则通过优化器融合,利用索引提高性能。递归查询是CTE的独占场景 …阅读更多 cmdragon