قواعد البيانات 2 دقيقة للقراءة 1,154 مشاهدات

ضبط أداء PostgreSQL: استراتيجيات الفهرسة وتحسين الاستعلامات

حسّن قاعدة بيانات PostgreSQL باستراتيجيات فهرسة متقدمة وتحليل الاستعلامات وتقنيات ضبط الأداء.

Database optimization

ضبط أداء PostgreSQL

حسّن قاعدة بيانات PostgreSQL لأقصى أداء.

تحليل الاستعلامات باستخدام EXPLAIN

EXPLAIN ANALYZE SELECT * FROM users
WHERE email = 'test@example.com';

-- Look for:
-- Seq Scan (bad for large tables)
-- Index Scan (good)
-- Nested Loop (can be slow)

إنشاء فهارس فعّالة

-- Single column index
CREATE INDEX idx_users_email ON users(email);

-- Composite index (order matters!)
CREATE INDEX idx_orders_user_date ON orders(user_id, created_at DESC);

-- Partial index for common queries
CREATE INDEX idx_active_users ON users(email) WHERE is_active = true;

-- GIN index for JSONB columns
CREATE INDEX idx_users_metadata ON users USING GIN(metadata);

نصائح تحسين الاستعلامات

-- Bad: Using functions on indexed columns
SELECT * FROM users WHERE LOWER(email) = 'test@example.com';

-- Good: Create a functional index
CREATE INDEX idx_users_email_lower ON users(LOWER(email));

-- Bad: SELECT *
SELECT * FROM orders WHERE user_id = 1;

-- Good: Select only needed columns
SELECT id, total, created_at FROM orders WHERE user_id = 1;

ضبط الإعدادات

# postgresql.conf
shared_buffers = 256MB              # 25% of RAM
effective_cache_size = 768MB        # 75% of RAM
work_mem = 64MB                     # Per-operation memory
maintenance_work_mem = 512MB        # For VACUUM, CREATE INDEX

تجميع الاتصالات باستخدام PgBouncer

# pgbouncer.ini
[databases]
mydb = host=localhost dbname=mydb

[pgbouncer]
pool_mode = transaction
max_client_conn = 1000
default_pool_size = 20

الصيانة المنتظمة بـ VACUUM و ANALYZE تُبقي قاعدة بياناتك تعمل بسلاسة.

مشاركة هذه المقالة:
ES
كتبه

Edrees Salih

مهندس برمجيات متكامل يتمتع بخبرة 9 سنوات. شغوف ببناء حلول قابلة للتطوير ومشاركة المعرفة مع مجتمع المطورين.

عرض الملف الشخصي

التعليقات (0)

اترك تعليقًا

لن يتم نشر بريدك الإلكتروني.

لا توجد تعليقات بعد. كن أول من يشارك أفكاره!

مقالات ذات صلة

مقالات ذات صلة

هل تحتاج مساعدة في مشروعك؟

احجز استشارة مجانية لمدة 30 دقيقة لمناقشة تحدياتك التقنية واستكشاف الحلول معًا.