📁 DB Optima

Proje incelemesi

DB Optima

Yavaş PostgreSQL sorguları için indeks önerilerini tahmine bırakmadan ölçülebilir sonuçlarla değerlendirmek.

PythonFastAPIPostgreSQLDocker

Çö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.

Ölçülen örnek sonuç
Önce
29.217 ms
Sonra
0.03 ms
Kaynak: proje README dosyası. Ölçümler değerlendirme senaryosuna özeldir.

Sonuç ve kapsam

Projenin gösterdiği sonuç

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

  1. EXPLAIN ANALYZE ile planı ve maliyetli taramaları incele
  2. İndeks adaylarını üret ve modelle sırala
  3. 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.