// 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