- 博客(5)
- 收藏
- 关注
原创 数据库性能之旅(五)排序消除
摘要:SQL语句中,当外层查询仅使用COUNT(*)聚合时,内层ORDER BY子句是多余的。测试发现多数数据库无法消除这种不必要的排序,但Oracle早在10g版本就实现了该优化。虽然这种写法不常见,但实际生产环境中仍存在使用案例,优化后能带来显著性能提升。从实现角度看,这属于较简单的逻辑优化(基于规则的优化)。其他数据库厂商仍在完善此类优化功能。
2026-01-04 00:50:31
359
原创 数据库性能之旅(四)关于NULL值
PostgreSQL 15 的 NULLS NOT DISTINCT 选项为数据库设计提供了更精细的唯一性控制手段,让开发者可以根据业务需求,选择是否将 NULL 视为一个可重复的“未知值”,还是一个具有唯一性的确定值。在设计表结构时,应仔细考虑业务语义,以决定是否启用此选项。
2025-12-29 22:39:56
723
原创 数据库性能之旅(三)index skip scan
Index Skip Scan是一种优化技术,用于解决复合索引前导列缺失时的查询效率问题。当查询条件不包含复合索引的前导列但后续列选择性高时,数据库会将查询逻辑拆分为多个子查询(如前导列不同值),通过合并结果避免全表扫描。Oracle、MySQL 8.0、PostgreSQL 18、达梦和OceanBase等数据库均支持该功能,实现方式各有特点:Oracle明确显示INDEX SKIP SCAN操作,PostgreSQL通过增强索引扫描实现,MySQL 8.0直接引入该特性。该技术适用于前导列基数低、后续列
2025-12-29 00:08:01
852
原创 数据库性能之旅(二)Create Index并行
PostgreSQL并行索引创建优化摘要:PostgreSQL 11引入并行索引创建功能,显著提升性能。测试显示,50亿数据量下,并行创建索引比单线程快48%。在线(CONCURRENTLY)模式会经历多个额外阶段以确保业务连续性。优化建议包括:增加并行度、扩大maintenance_work_mem至4GB、使用SSD分离排序和数据磁盘、调整WAL参数。PolarDB PostgreSQL还支持跨节点并行扫描加速索引构建。参考多个官方文档显示,合理配置并行参数可大幅缩短索引创建时间。
2025-12-26 01:01:09
925
原创 数据库性能之旅(一)PostgreSQL索引排序优化
本系列开启一个数据库性能之旅,一起看看各主流数据库对于性能做了哪些背后的优化,本节先从索引检索层面分析。本章不是讲索引如何优化数据检索效率的,主要是降如何在索引的基础上再提升文本排序检索效率。
2025-12-22 21:55:44
645
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅