Pedal İzmir
Bu modülde İzmir'de hayali bir bisiklet paylaşım sisteminin üç aylık verisiyle çalışacaksın. Yolculuk tablosu (bk_trips) yaklaşık 116.000 satırdır: şimdiye kadarki tabloların çok üstünde. Büyük tabloda iki şey değişir: her sorgunun bir maliyeti vardır ve sonuca bakarak hatayı görmek zorlaşır, çünkü satırları tek tek okuyamazsın.
Önce profil
Sorgulamaya başlamadan önce tabloyu tek bir sorguyla “fotoğrafla”: kaç satır, hangi aralık, ne kadar boşluk?
SELECT COUNT(*) AS satir,
MIN(started_at) AS ilk,
MAX(started_at) AS son,
COUNT(*) - COUNT(ended_at) AS kapanmamis,
COUNT(DISTINCT user_id) AS kullanici,
COUNT(DISTINCT bike_id) AS bisiklet,
ROUND(AVG(distance_km), 2) AS ort_km
FROM bk_trips;
Önce küçükte dene
Karmaşık bir sorguyu yazarken tüm tabloda değil, küçük ve tekrarlanabilir bir örneklemde dene. ORDER BY RANDOM() her çalıştırmada farklı satır verir ve tüm tabloyu sıralar; bunun yerine anahtar üzerinden deterministik örnek al:
SELECT * FROM bk_trips WHERE trip_id % 100 = 0; -- yaklaşık %1, her seferinde aynı satırlar
Ya da bir zaman dilimiyle sınırla: WHERE started_at >= '2024-06-01' AND started_at < '2024-06-08'. Sorgu doğru çalışınca filtreyi kaldır.
SELECT * yerine ihtiyacın olan sütunları seç ve sonuç ekranına yüz binlerce satır getirme; önce özetle.