Ana içeriğe atla

PostgreSQL'de Özet Görünümler (Materialized Views)

PostgreSQL'de özet görünümler yardımıyla bir sorgunun sonuçlarını nasıl saklayacağınızı öğrenin.
Güncel 3 Eki 2026  · 6 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Eğer veritabanlarını sorgulamak için SQL (tercihen PostgreSQL) ile yoğun ya da orta düzeyde çalışıyorsanız, kritik sorulara yanıt bulmak için epey karmaşık sorgular yazmış olabilirsiniz. Bazen de bu sorguların sonuçlarını işinizde oldukça sık kullanmanız gerekebilir. Karmaşık bir sorguyu tekrar tekrar çalıştırmak maliyetli olabilir. Peki performansa yardımcı olmak için karmaşık bir sorgunun sonuçlarını önbelleğe almanın bir yolu olsaydı? İşte özet görünümler tam bu noktada devreye giriyor.

Düşünüyor olabilirsiniz: Sorgu sonucunu saklayabilen basit görünümler de var. Ancak basit bir görünüm, pek çok açıdan bir özet görünümden farklıdır. İşte PostgreSQL'in resmi belgelerinin basit görünümler hakkında söylediği:

Görünüm fiziksel olarak maddileştirilmez. Bunun yerine, görünüme bir sorguda her başvurulduğunda sorgu çalıştırılır.

Bu ifade, basit görünümlerin veritabanında fiziksel olarak saklanmadığı anlamına gelir. Bir görünüm her kullanıldığında, görünümü oluşturan sorgu çalıştırılır. Bu da erişim süresi açısından basit görünümleri bir miktar verimsiz kılar.

Öte yandan, özet görünümler bir görünümü veritabanında fiziksel olarak kalıcı hale getirmenize olanak tanıyarak büyük bir esneklik sunar. Ve özet görünümler üzerinde, basit görünümlerde olduğu gibi (ancak daha düşük erişim süresiyle) işlem yapabilirsiniz. Bu öğreticinin geri kalanında PostgreSQL'deki özet görünümleri inceleyeceksiniz. DataCamp Baş Veri Bilimcisi David Robinson, bir webinarında özet görünümleri karmaşık sorguların sonuçlarını etkili biçimde saklamak için nasıl kullandığını göstermişti.

Not: Bu öğreticiye adım adım eşlik edebilmek için, SQL'de Verileri Birleştirme kursunda ele alınan konulara aşina olmalısınız.

İlk Veritabanı Kurulumu

PostgreSQL'de bir veritabanı kurup içinde temel bir tablo oluşturmanız, onu etkili biçimde sorgulayabilmeniz açısından daha iyi olacaktır. Bu, bu öğreticinin sonraki bölümlerinde de işinize yarayacaktır. Bu öğreticide kullanacağınız tabloyu içeren bu veritabanı yedeğini geri yükleyebilirsiniz. PostgreSQL'de veritabanı yedeği nasıl geri yüklenir öğrenmek isterseniz, şu öğreticinin ilk bölümünü takip edebilirsiniz.

Yedeği geri yükleyebildiyseniz, veritabanı içinde international_debt adlı bir tablo görmelisiniz (eğer yoksa önce bir veritabanı oluşturmanız gerekir). Hızlıca tablonun ilk birkaç satırına bakalım (bunu basit bir select sorgusuyla yapabilirsiniz) -

database

Tablo, dünya genelindeki farklı ülkelerin bu yıla ait çeşitli kategorilerdeki borç istatistiklerine ilişkin bilgileri içerir (indicator_name, indicator_code sütunlarına bakınız). Borç sütunu, belirli bir ülkenin belirli bir kategorideki borç miktarını (USD cinsinden) gösterir. Veriler ekonomi alanına aittir ve sıkça ülkelerin ekonomik koşullarını analiz etmek için kullanılır. Veriler Dünya Bankası'ndan toplanmıştır.

Artık bir veritabanını başarıyla kurduğunuza göre, bu öğreticinin sonraki bölümlerine geçebilirsiniz.

Özet Görünüm Oluşturma

Aşağıdaki sorgunun bir özet görünümünü oluşturalım -

select country_name,
sum(debt) as total_debt
from international_debt
group by country_name order by country_name;

Sorgu, ülke adlarını toplam borçlarıyla birlikte (alfabetik sırada) döndürür. Sorgunun çıktısı şu şekilde görünmelidir -

Şimdi özet görünüm -

CREATE MATERIALIZED VIEW country_total_debt
as
  select country_name,
  sum(debt) as total_debt
  from international_debt
  group by country_name order by country_name;

Şu şekilde bir başarı mesajı almalısınız: Query returned successfully: 124 rows affected, 242 ms execution time.

Bir Özet Görünümü Yenileme

Özet görünümü oluştururken WITH NO DATA seçeneğini belirterek PostgreSQL'e görünüme herhangi bir veri yüklememesini de söyleyebilirsiniz -

CREATE MATERIALIZED VIEW country_total_debt_2
as
  select country_name,
  sum(debt) as total_debt
  from international_debt
  group by country_name order by country_name
WITH NO DATA;

Şu mesajı alırsınız: Query returned successfully with no result in 41 ms. İki çıktı mesajı arasındaki farka dikkat edin. WITH NO DATA seçeneğini eklerseniz, boş bir özet görünüm oluşturulur. Bu özet görünümü sorgulayamazsınız. Ancak aşağıdakini çalıştırarak özet görünümü doldurabilirsiniz -

REFRESH MATERIALIZED VIEW country_total_debt_2;

Bir Özet Görünümü Sorgulama

Şu ana kadar iki özet görünüm (country_total_debt, country_total_debt_2) oluşturmuş olmalısınız. İkisinden herhangi birini kullanarak basit bir select sorgusu çalıştıralım -

select * from country_total_debt_2;

Sorgu şöyle bir sonuç döndürmelidir -

query

Çıktı, özet görünüm içine aldığımız sorgunun çıktısıyla tamamen aynıdır. Özet görünümler üzerinde toplulaştırma fonksiyonları içeren sorgular da çalıştırabilirsiniz -

select max(total_debt) from country_total_debt_2;

Şu sonucu almalısınız - output

Bir Özet Görünümü Kaldırma

Özet görünümler, PostgreSQL'de tabloların kaldırıldığı şekilde kaldırılabilir. Sadece Drop'tan sonra Materialized View belirtmeniz yeterlidir -

Drop Materialized View country_total_debt_2;

MySQL'i en popüler ikinci rakibiyle karşılaştırmak için ayrıntılı PostgreSQL vs. MySQL karşılaştırmamıza göz atın.

Sonuç

Bu öğretici bu kadar. Sonuna kadar okuduğunuz için teşekkürler. Bu öğreticide PostgreSQL'de özet görünümleri ve bunlar üzerinde nasıl işlem yapabileceğinizi öğrendiniz. Etkililikleri sayesinde özet görünümler, veri ambarlarında yaygın olarak kullanılır. Daha karmaşık sorguları öğrenmekle ilgileniyorsanız, aşağıdaki DataCamp kurslarına göz atabilirsiniz:

Konular
SQL

SQL Kursları

Kurs

SQL ile Veri İşleme

4 sa
336.7K
Veri Bilimi sorularını yanıtlamak ve PostgreSQL’de analiz için sağlam veri kümeleri hazırlamak üzere gerekli karmaşık SQL sorgularında ustalaşın.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör