Sütun odaklı depolama

PostgreSQL'de Sorgu Performansını İyileştirme

Amy McCarty

Instructor

Sütun odaklı

Sütun odaklı depolama

  • Satırlar arası ilişki korunur
id name species age habitat received
01 Bob panda 2 Asia 2018
02 Sunny zebra 3 Africa 2018
03 Beco zebra 10 Africa 2017
04 Coco koala 5 Australia 2016

Şu şekilde depolanır

İki tablo. İlk tablo id ve tür listesidir. 01 - panda. 02 - zebra. 03 - zebra. 04 - koala. İkinci tablo id ve yaş listesidir. 01 - 2. 02 - 3. 03 - 10. 04 - 5.

PostgreSQL'de Sorgu Performansını İyileştirme

Analitik odak - uygun bir seçim

Sütun odaklı depolama özellikleri

  • Aynı sütun aynı konumda tutulur
  • Tüm satırları döndürmek hızlıdır
  • Sütun hesaplamaları hızlıdır

Analitik odak

  • Sayımlar, ortalamalar, hesaplamalar
  • Raporlama
  • Sütun toplamaları

Şu şekilde depolanır

Üç tablo. İlk tablo id ve ad listesidir. 01 - Bob. 02 - Sunny. 03- Beco. 04 - Coco. İkinci tablo id ve tür listesidir. 01 - panda. 02 - zebra. 03 - zebra. 04 - koala. Üçüncü tablo id ve yaş listesidir. 01 - 2. 02 - 3. 03 - 10. 04 - 5.

PostgreSQL'de Sorgu Performansını İyileştirme

İşlemsel odak - uygun değil

Satır ilişkileri korunur

  • Tüm sütunları döndürmek yavaştır
  • Veri yükleme yavaştır

İşlemsel odak

  • Kayıt ekleme ve silme hızlıdır

Şu şekilde depolanır

Üç tablo. İlk tablo id ve ad listesidir. 01 - Bob. 02 - Sunny. 03- Beco. 04 - Coco. İkinci tablo id ve tür listesidir. 01 - panda. 02 - zebra. 03 - zebra. 04 - koala. Üçüncü tablo id ve yaş listesidir. 01 - 2. 02 - 3. 03 - 10. 04 - 5.

PostgreSQL'de Sorgu Performansını İyileştirme

Veritabanı örnekleri

 

Postgres Citus Data, Greenplum, Amazon Redshift
MySQL MariaDB
Oracle Oracle In-Memory Cloud Store
Clickhouse, Apache Druid, CrateDB
PostgreSQL'de Sorgu Performansını İyileştirme

Bilgi şeması

Sütunları azaltma

  • SELECT * ifadesini sınırlı kullanın
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_catalog = 'schema_name'
AND table_name = 'zoo_animals'
column_name data_type
id integer
name text
species text
PostgreSQL'de Sorgu Performansını İyileştirme

Bilgi şeması

Sütunları azaltma

  • SELECT * ifadesini sınırlı kullanın
  • Bilgi şemasını kullanın
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_catalog = 'schema_name'
AND table_name = 'zoo_animals'
column_name data_type
id integer
name text
species text
PostgreSQL'de Sorgu Performansını İyileştirme

Sorgularınızı yazma

 

  • Her sütunu kendi sorgusunda inceleyin
id name species age habitat received
01 Bob panda 2 Asia 2018
02 Sunny zebra 3 Africa 2018
03 Beco zebra 10 Africa 2017
04 Coco koala 5 Australia 2016
-- Sütun odaklı yapı
SELECT MIN(age), MAX(age)
FROM zoo_animals
WHERE species = 'zebra'
-- Satır odaklı yapı
SELECT *
FROM zoo_animals
WHERE species = 'zebra'
ORDER BY age
PostgreSQL'de Sorgu Performansını İyileştirme

Hadi pratik yapalım!

PostgreSQL'de Sorgu Performansını İyileştirme

Preparing Video For Download...