SQL ve veritabanları
Sorgu doğruluğu, transaction, veri türleri ve veritabanı bağlantıları.
60 çözüm rehberi · Sayfa 1 / 3
WHERE value = NULL neden satır döndürmüyor?
NULL bilinmeyen veya eksik değeri temsil eder; taraflardan biri NULL olduğunda normal eşitlik true olmaz.
Alt sorguda NULL varken NOT IN neden satır döndürmüyor?
Aday kümedeki NULL, NOT IN sonucunu true yerine bilinmeyen yapabilir. Bu üç değerli mantık sorunudur.
LEFT JOIN filtresi neden eşleşmeyen satırları kaldırıyor?
Sağ tablonun WHERE koşulu dış birleştirmeden sonra uygulanır. NULL ile tamamlanan eşleşmesiz satır koşulu geçmeyebilir.
İki alt tabloyu birleştirmek SUM sonucunu neden şişiriyor?
Bağımsız bire-çok join’ler satırları çarpar: iki ödeme ve üç kalem aynı siparişte altı satır üretir. Sonraki toplam tekrarları sayar.
COUNT(*) ile COUNT(column) neden farklı toplam veriyor?
COUNT(*) satırları, COUNT(column) ise ifadesi NULL olmayanları sayar. Dış join sonrasında fark önemlidir.
Boş sonuçta SUM neden sıfır yerine NULL döndürüyor?
PostgreSQL’de count dışındaki çoğu aggregate katkı veren satır yoksa NULL döndürür. Bilinmeyen toplam ile bilinen sıfır kendiliğinden aynı değildir.
Müşteri başına son kaydı sütunları karıştırmadan nasıl seçerim?
MAX(timestamp) yanında ilgisiz sütunları seçmek o zamana sahip tam satırı güvenilir biçimde seçmez.
LAST_VALUE neden grubun sonu yerine mevcut satırı döndürüyor?
Window fonksiyonu bütün partition yerine frame içinde çalışır. Sıralamalı varsayılan frame çoğu zaman mevcut eş grubunda biter.
Güncellemeler sırasında OFFSET sayfalama neden kayıt atlıyor veya tekrarlıyor?
OFFSET güncel sıralı sonuçtaki konumu kullanır. Ön tarafa ekleme veya silme sonraki sayfaları kaydırır.
ORDER BY olmayan SELECT neden indeks eklenince farklı sıralanıyor?
ORDER BY yoksa satır sırası garanti değildir. Farklı yürütme planı farklı fiziksel erişim sırası gösterebilir.
PostgreSQL WHERE sütunundaki indeksi neden kullanmıyor?
Planlayıcı maliyet tahminlerini karşılaştırır; çok satır eşleşiyorsa indeks taramadan pahalı olabilir. Eski istatistik, cast veya ifade de etkiler.
LOWER(email) neden normal email indeksini kullanmıyor?
Ham sütun indeksi ile sütuna uygulanan ifadenin indeksi farklıdır. Planlayıcı uyumlu erişim yolu ister.
PostgreSQL çok sütunlu B-tree indeksinde sütun sırasını nasıl seçmeliyim?
Sıra gerçek filtre ve sıralamaya göre seçilmeli; “en seçici sütun her zaman önce” evrensel kural değildir. Başta eşitlik koşulları taranan aralığı daraltabilir.
Kısmi indeks neden bir sorguda çalışıp parametreli sürümde çalışmıyor?
Planlayıcı sorgu koşulunun kısmi indeks koşulunu gerektirdiğini kanıtlamalı. Genel parametreli planda gereken değer bilinmeyebilir.
PostgreSQL foreign key alt sütuna otomatik indeks oluşturur mu?
Alt tarafta otomatik indeks varsayılmamalı. Başvurulan anahtar uygun benzersizlik ister; başvuran sütun için iş yüküne göre indeks gerekebilir.
EXPLAIN ANALYZE sorguyu incelerken veriyi değiştirebilir mi?
Evet. ANALYZE gerçek çalışma bilgisini toplamak için sorguyu çalıştırır; INSERT, UPDATE ve DELETE etkileri buna dahildir.
Eşzamanlı kontrol-et-ekle istekleri neden çift kayıt oluşturabiliyor?
SELECT ile yokluğu görmek anlıktır; sonraki INSERT’ten önce başka transaction ekleyebilir.
Başarısız sorgudan sonra PostgreSQL neden current transaction is aborted diyor?
Transaction içindeki hata işlemi rollback yapılana kadar başarısız durumda bırakır. Aynı bağlantıda başka sorgu göndermek bunu temizlemez.
Uygulama PostgreSQL deadlock hatasından nasıl toparlanmalı?
Deadlock transaction’ların döngüsel birbirini beklemesidir. PostgreSQL ilerleme için bir katılımcıyı iptal eder.
Serialization failure neden tüm transaction’ın tekrarını gerektiriyor?
Hata, transaction’ın birleşik okuma/yazma sonucunun güvenle sıralanamadığını gösterir. Yalnız son yazmayı tekrarlamak geçersiz denemenin varsayımlarını kullanır.
İki isteğin birbirinin düzenlemesini ezmesini nasıl önlerim?
Değeri okuyup bellekte değiştirerek geri yazmak aradaki güncellemeyi kaybettirebilir. Çözüm işleme bağlıdır.
SELECT FOR UPDATE SKIP LOCKED iş kuyruğunda ne zaman yararlı?
Worker’lar kilitli işi beklemeden farklı uygun satırları alabilir; kuyruk işlerinde yararlıdır.
PostgreSQL idle in transaction oturumu neden sorun?
İstemci transaction’ı açık bırakıp veritabanı işi yapmıyordur. Kilit ve eski snapshot bakım ile diğer istekleri engelleyebilir.
Veritabanı havuzunu büyütmek neden gecikmeyi artırabilir?
Daha fazla bağlantı yararlı kapasitenin üstünde eşzamanlı iş üretip CPU, bellek, kilit ve diskte yarışmayı artırabilir.
Kendi sorunu sor · Soru ve cevap yazmak için giriş yap.