Penyimpanan berorientasi baris dan partisi

Meningkatkan Performa Kueri di PostgreSQL

Amy McCarty

Instructor

Jenis penyimpanan basis data

Penyimpanan berorientasi baris

  • Relasi antar kolom dipertahankan

Penyimpanan berorientasi kolom

  • Relasi antar baris dipertahankan
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
Meningkatkan Performa Kueri di PostgreSQL

Berorientasi baris

Penyimpanan berorientasi baris

  • Relasi antar kolom dipertahankan

 

id name species age habitat received
01 Bob panda 2 Asia 2018
Meningkatkan Performa Kueri di PostgreSQL

Berorientasi kolom

Penyimpanan berorientasi kolom

  • Relasi antar baris dipertahankan  

Dua tabel. Tabel pertama adalah daftar id dan name. 01 - Bob. 02 - Sunny. 03 - Beco. 04 - Coco. Tabel kedua berisi id yang sama dengan daftar species. 01 - panda. 02 - zebra. 03 - zebra. 04 - koala.

Meningkatkan Performa Kueri di PostgreSQL

Penyimpanan berorientasi baris

 

  • Satu baris disimpan di lokasi yang sama
  • Cepat menambahkan atau menghapus seluruh rekaman
  • Cepat mengembalikan semua kolom
    • Lambat mengembalikan semua baris
Meningkatkan Performa Kueri di PostgreSQL

Mengurangi baris

Kurangi jumlah baris

  • Filter WHERE
  • INNER JOIN
  • DISTINCT
  • LIMIT
Meningkatkan Performa Kueri di PostgreSQL

Metode basis data berorientasi baris

Partisi

  • Metode membagi satu tabel (induk) menjadi banyak tabel (anak) yang lebih kecil

Indeks

  • Metode membuat kunci kolom terurut untuk mempercepat pencarian

 

Menggunakan partisi dan indeks

  • Perlu penyiapan dan pemeliharaan
  • Diketahui dari administrator basis data atau dokumentasi
Meningkatkan Performa Kueri di PostgreSQL

Struktur partisi

Tabel induk hewan kebun binatang dengan empat rekaman berisi id, name, species, habitat, dan year received. 01 - Bob - Panda - age - habitat - received. 02 - Sunny - Zebra - 3 - Africa - 2018. 03 - Beco - Zebra - 10 - Africa - 2017. 04 - Coco - Macaw - 5 - South America - 2016. Ada 3 tabel anak sesuai kolom habitat. Tabel Asia berisi satu rekaman untuk Bob. Tabel Africa berisi dua rekaman untuk Sunny dan Beco. Tabel South America berisi satu rekaman untuk Coco.

  • Tabel induk
    • Terlihat di antarmuka basis data
    • Tempat menulis kueri
  • Tabel anak
    • Tidak terlihat di antarmuka basis data
    • Menjadi target pencarian kueri
Meningkatkan Performa Kueri di PostgreSQL

Struktur partisi

Tabel induk hewan kebun binatang dengan empat rekaman berisi id, name, species, habitat, dan year received. 01 - Bob - Panda - age - habitat - received. 02 - Sunny - Zebra - 3 - Africa - 2018. 03 - Beco - Zebra - 10 - Africa - 2017. 04 - Coco - Macaw - 5 - South America - 2016. Ada 3 tabel anak sesuai kolom habitat. Tabel Asia berisi satu rekaman untuk Bob. Tabel Africa berisi dua rekaman untuk Sunny dan Beco. Tabel South America berisi satu rekaman untuk Coco. Tabel Africa diberi garis merah.

SELECT species
FROM zoo_animals
WHERE habitat = 'Africa'
Meningkatkan Performa Kueri di PostgreSQL

Tinjauan partisi

Apa

  • Membagi satu tabel menjadi banyak tabel kecil

Mengapa

  • Fleksibilitas penyimpanan
  • Kueri lebih cepat

Di mana

  • Kolom filter umum
    • Tanggal, lokasi
Meningkatkan Performa Kueri di PostgreSQL

Evaluasi kueri pada partisi

Perencana kueri

Beberapa koki di sekitar panci masak besar

EXPLAIN
SELECT species
FROM zoo_animals
WHERE habitat = 'Africa'

Rencana Kueri

Seq Scan on zoo_animals  (cost=0.00..
17.70 rows=2 width=182)
  Filter: (state_code = 15)
  • Perkiraan biaya (waktu)
Meningkatkan Performa Kueri di PostgreSQL

Ayo berlatih!

Meningkatkan Performa Kueri di PostgreSQL

Preparing Video For Download...