1. 📖 概述 本章详细介绍PostgreSQL的基础查询语句,包括SELECT、WHERE、ORDER BY等,并与MySQL进行对比。 2. 🔍 SELE
1. 📖 概述 本章介绍PostgreSQL的高级查询技巧,包括复杂条件查询、集合操作、分析函数等。 2. 🔍 UNION操作 2.1 UNION和UNION ALL -- UNION:
1. 📖 概述 聚合函数对一组值进行计算并返回单个值。本章详细介绍PostgreSQL的聚合函数、分组查询和HAVING子句。 2. 🔢 基本聚合函数 2.1 CO
1. 📖 概述 多表连接(JOIN)是关系型数据库的核心功能。本章详细介绍PostgreSQL的各种JOIN类型及其应用场景。 2. 🔗 JOIN类型概览 LEFT
1. 📖 概述 本章详细介绍PostgreSQL的子查询和CTE(Common Table Expressions,公共表表达式),这些是编写复杂查询的强大工具
1. 📖 概述 视图是基于SQL查询结果的虚拟表,物化视图则会实际存储查询结果。本章详细介绍这两种强大的数据库对象。 2. 👁️ 视图(View) 2.1 创建视图
1. 📖 概述 PostgreSQL支持创建存储过程(Procedure)和函数(Function),可以封装复杂的业务逻辑。本章介绍PL/pgSQ
1. 📖 概述 触发器是在特定事件(INSERT/UPDATE/DELETE)发生时自动执行的函数。本章介绍PostgreSQL触发器的使用。 2. 🔔 触
1. 📖 概述 事务是数据库操作的基本单位,本章介绍PostgreSQL的事务管理和并发控制机制。 2. 🔒 事务基础 2.1 ACID特性 Atomicity(原子
1. 📖 概述 窗口函数(Window Functions)是PostgreSQL的强大特性,允许在结果集的分区上执行计算,而不需要GROUP BY,非
1. 📖 概述 PostgreSQL对JSON的支持是其最强大的特性之一,提供了JSON和JSONB两种类型,以及丰富的操作符和函数。 2. 🔤 JSON vs JSONB 2.1 类
1. 📖 概述 PostgreSQL内置强大的全文搜索功能,支持中英文搜索、相关性排名等。 2. 🔍 基础概念 2.1 tsvector和tsquery -- 创建全文搜
1. 📖 概述 PostgreSQL原生支持数组和范围类型,这是其独特优势。 2. 📊 数组类型 -- 创建数组列 CREATE TABLE articles ( id SERIAL PRIMARY KEY, title TEXT, tags TEXT[], ratings INTEGER[] ); -- 插入数组 INSERT INTO articles (title,
1. 📖 概述 PostGIS是PostgreSQL的空间数据库扩展,支持地理数据存储和查询。 2. 🗺️ 安装PostGIS CREATE EXTENSION postgis; -- 查看版本 SELECT PostGIS_Version(); 3. 📍 基本操
1. 📖 概述 分区表将大表拆分为多个物理分区,提高查询性能和维护效率。 2. 🔧 声明式分区 2.1 范围分区 CREATE TABLE orders ( id SERIAL, order_date DATE NOT NULL, amount NUMERIC(10,2) ) PARTITION BY RANGE (order_date); -- 创建分区 CREATE TABLE orders_2023 PARTITION
1. 📖 概述 查询优化是数据库性能调优的核心,本章介绍如何使用EXPLAIN分析查询,理解执行计划,以及优化慢查询。 2. 🔍 EXPLAIN基础 2.1 EXP
1. 📖 概述 索引是提升查询性能的关键,本章介绍索引优化的最佳实践。 2. 🎯 索引策略 2.1 何时创建索引 -- WHERE子句频繁使用的列 CREATE INDEX idx_users_email ON users(email); -- JOIN条件
1. 📖 概述 合理配置PostgreSQL参数可以大幅提升性能。 2. ⚙️ 关键参数 2.1 内存配置 # shared_buffers: 25-40% RAM shared_buffers = 4GB # effective_cache_size: 50-75% RAM effective_cache_size = 12GB # work_mem: 复杂查询内存 work_mem = 16MB # maintenance_work_mem: VA
1. 📖 概述 连接池管理数据库连接,提高性能和资源利用率。 2. 🔄 PgBouncer 2.1 安装配置 # Ubuntu sudo apt install pgbouncer # 配置 /etc/pgbouncer/pgbouncer.ini [databases] mydb = host=localhost port=5432 dbname=mydb [pgbouncer] listen_addr = * listen_port = 6432 auth_type = md5 auth_file = /etc/pgbouncer/userlist.txt pool_mode = transaction max_client_conn = 1000 default_pool_size
1. 📖 概述 识别和优化慢查询是性能调优的重要环节。 2. 🔍 启用慢查询日志 -- 记录超过1秒的查询 ALTER SYSTEM SET log_min_duration_statement = 1000; SELECT pg_reload_conf(); 3. 📊 pg_stat_statements CREATE EXTENSION pg_stat_statements; -- 最慢的10个查询 SELECT query, calls, mean_exec_time, total_exec_time