dataiotech Labs
Home/Operasyon/Performans
Performance Profiling & Query Optimization

Veritabanı Performans Optimizasyonu

İndeks tasarımı, bellek havuzları boyutlandırma, TempDB/VACUUM tuning ve EXPLAIN plan okuma reçeteleri.

Motor Filtresi:
PostgreSQL

PostgreSQL: İndeksleme Stratejileri & VACUUM Optimizasyonu

Gereksiz indeks yazma I/O'sunu artırır; eksik indeks disk taraması (Seq Scan) ile CPU'yu kilitler. Dead tuple birikmesi autovacuum tuning gerektirir.

💡 Altın Kural:Yüksek kardinalite için B-Tree, JSONB / dizi aramaları için GIN, zaman serisi büyük tablolar için BRIN kullanın.
-- Kapsayan İndeks (Covering Index - Table Access'i sıfırlar):
CREATE INDEX idx_orders_user_covering ON orders (user_id) INCLUDE (total_amount, status);
-- Autovacuum Hızlandırma:
ALTER TABLE high_write_table SET (autovacuum_vacuum_scale_factor = 0.05, autovacuum_vacuum_cost_limit = 2000);
PostgreSQL

PostgreSQL: shared_buffers & work_mem Boyutlandırma

Veritabanının disk I/O'ya gitmeden RAM üzerinden sayfaları karşılaması (Hit Ratio > %99).

💡 Altın Kural:RAM'in %25'i shared_buffers, %75'i OS page cache (effective_cache_size) ve sorgu karmaşıklığına göre work_mem atanmalıdır.
shared_buffers = 16GB
effective_cache_size = 48GB
work_mem = 64MB
maintenance_work_mem = 2GB
MySQL

MySQL: InnoDB Buffer Pool & Redo Log Tuning

InnoDB motorunun disk darboğazlarını önlemesi ve lock contention sürelerini minimize etmesi.

💡 Altın Kural:Dedicated DB sunucularında RAM'in %70-%80'i innodb_buffer_pool_size olarak atanmalı ve birden çok instance'a bölünmelidir.
[mysqld]
innodb_buffer_pool_size = 48G
innodb_buffer_pool_instances = 8
innodb_log_file_size = 4G
innodb_flush_log_at_trx_commit = 2  # Yüksek write throughput için