// Extensions
PostgreSQL Extensions
หนึ่งในจุดแข็งที่สุดของ PostgreSQL — ขยายความสามารถด้วย Extensions กว่า 300+ รายการ ครอบคลุมทุก Use Case
// Essential Extensions
Extensions ที่ใช้บ่อยที่สุด
PostGIS
Geospatial / GIS
เพิ่มความสามารถด้านข้อมูลพิกัดภูมิศาสตร์ รองรับ Geographic Objects, Spatial Queries และ Map Overlays ระดับ Enterprise — ใช้โดย OpenStreetMap, NASA
pgvector
AI / Machine Learning
เก็บและค้นหา Vector Embeddings สำหรับ AI/ML Applications — รองรับ Cosine Similarity, L2 Distance สำหรับ Semantic Search และ RAG Systems
TimescaleDB
Time-Series Data
ขยาย PostgreSQL ให้รองรับ Time-Series Data ระดับ Enterprise — Auto Partitioning, Compression และ Continuous Aggregates
pg_stat_statements
Monitoring
Track Statistics ของทุก Query ที่รันบน Server — หา Slow Queries, High-CPU Queries ได้ง่าย
pg_cron
Job Scheduler
รัน Scheduled Jobs ตรงใน PostgreSQL เหมือน Cron บน Unix — ไม่ต้องพึ่ง External Scheduler
pg_trgm
Fuzzy Search
Trigram-based Text Similarity — รองรับ LIKE/ILIKE ที่มี Index และ Fuzzy String Matching
pgAudit
Audit Logging
Audit Log ระดับ Enterprise ตาม Session หรือ Object — เหมาะกับ Compliance (PCI-DSS, HIPAA)
pgcrypto
Encryption
ฟังก์ชัน Cryptographic ใน SQL — Hashing (MD5, SHA), Symmetric/Asymmetric Encryption
pg_partman
Partitioning
จัดการ Table Partitioning อัตโนมัติ — Time-based และ Serial Partitions พร้อม Auto-Maintenance
postgres_fdw
Foreign Data
เชื่อมต่อ PostgreSQL กับ PostgreSQL อื่นหรือ Data Source ภายนอกแบบ Transparent
Citus
Horizontal Scaling
Sharding และ Distributed SQL บน PostgreSQL — Scale Out สำหรับ Multi-Tenant หรือ Analytical Workloads
uuid-ossp
UUID Generation
สร้าง UUID (v1, v3, v4, v5) ใน PostgreSQL — ใช้กับ Primary Key แบบ UUID
// Quick Install
วิธีติดตั้ง Extensions
-- เปิดใช้งาน Extension (ต้อง superuser)
CREATE EXTENSION postgis;
CREATE EXTENSION vector; -- pgvector
CREATE EXTENSION pg_stat_statements;
CREATE EXTENSION pgcrypto;
CREATE EXTENSION uuid-ossp;
CREATE EXTENSION pg_trgm;
CREATE EXTENSION pg_cron;
-- ดู Extensions ที่ติดตั้งแล้ว
SELECT name, default_version, installed_version
FROM pg_available_extensions
WHERE installed_version IS NOT NULL;
-- ดู Extensions ที่มีให้ติดตั้ง
SELECT name, default_version, comment
FROM pg_available_extensions
ORDER BY name;
-- pgvector: สร้าง Embedding Column
CREATE TABLE embeddings (
id SERIAL PRIMARY KEY,
content TEXT,
vec vector(1536)
);
CREATE INDEX ON embeddings
USING ivfflat(vec vector_cosine_ops);
-- Semantic Search
SELECT content, vec <-> '[...]'::vector AS dist
FROM embeddings
ORDER BY dist LIMIT 5;
-- pg_cron: Schedule Job
SELECT cron.schedule(
'nightly-vacuum',
'0 2 * * *',
$$VACUUM ANALYZE users$$
);
🐘 PostgreSQL Extension Ecosystem
PGXN (PostgreSQL Extension Network) รวบรวม Extensions กว่า 300+ รายการ ทั้งหมดฟรีและ Open Source สามารถค้นหาได้ที่ pgxn.org และ github.com/pgexperts