Proje incelemesi
DB Optima
Yavaş PostgreSQL sorguları için indeks önerilerini tahmine bırakmadan ölçülebilir sonuçlarla değerlendirmek.
Çözüm yaklaşımı
EXPLAIN ANALYZE planlarını inceler, indeks adayları üretir ve ML modeliyle önceliklendirir. Geçici indeksle önce ve sonra benchmark çalıştırır; nihai kararı ölçülen iyileşmeye göre saklar.
Sonuç ve kapsam
Yerel örnek sorguda medyan süre 29,217 ms’den 0,03 ms’ye indi. Bu sonuç tek test iş yüküne aittir; farklı veri ve donanımda değişir.
Nasıl çalışır
- EXPLAIN ANALYZE ile planı ve maliyetli taramaları incele
- İndeks adaylarını üret ve modelle sırala
- Geçici indeksle önce / sonra sürelerini ölç; kararı kaydet
Yerelde çalıştır
Windows PowerShell: depo kökünden çalıştırın. Gerekli ayarlar ve bağımlılıklar için README dosyasına bakın.
docker compose up -d
cd backend
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
uvicorn app.main:app --reload
Doğrula
GET /health
POST /api/databases/{database_id}/optimize-query
Kapsam ve sınırlar
29,217 ms → 0,03 ms karşılaştırması tek bir yerel örnek sorguya aittir. Veri boyutu, önbellek, donanım ve PostgreSQL istatistikleri sonucu değiştirir; indeks denemeleri kontrollü veritabanında yapılmalıdır.