Utilizarea stocării orientate pe coloane

Îmbunătățirea performanței interogărilor în PostgreSQL

Amy McCarty

Instructor

Orientat pe coloane

Stocare orientată pe coloane

  • Relația dintre rânduri este păstrată
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

Stocat ca

Două tabele. Primul tabel conține id-uri și specii: 01 - panda, 02 - zebra, 03 - zebra, 04 - koala. Al doilea tabel conține id-uri și vârste: 01 - 2, 02 - 3, 03 - 10, 04 - 5.

Îmbunătățirea performanței interogărilor în PostgreSQL

Orientare spre analiză - potrivire bună

Proprietăți ale stocării orientate pe coloane

  • O coloană stocată în același loc
  • Returnare rapidă a tuturor rândurilor
  • Calcule rapide pe coloane

Orientare spre analiză

  • Numărători, medii, calcule
  • Raportare
  • Agregări pe coloane

Stocat ca

Trei tabele. Primul tabel conține id-uri și nume: 01 - Bob, 02 - Sunny, 03 - Beco, 04 - Coco. Al doilea tabel conține id-uri și specii: 01 - panda, 02 - zebra, 03 - zebra, 04 - koala. Al treilea tabel conține id-uri și vârste: 01 - 2, 02 - 3, 03 - 10, 04 - 5.

Îmbunătățirea performanței interogărilor în PostgreSQL

Orientare tranzacțională - potrivire slabă

Relațiile dintre rânduri sunt păstrate

  • Returnare lentă a tuturor coloanelor
  • Încărcare lentă a datelor

Orientare tranzacțională

  • Inserare și ștergere rapidă a înregistrărilor

Stocat ca

Trei tabele. Primul tabel conține id-uri și nume: 01 - Bob, 02 - Sunny, 03 - Beco, 04 - Coco. Al doilea tabel conține id-uri și specii: 01 - panda, 02 - zebra, 03 - zebra, 04 - koala. Al treilea tabel conține id-uri și vârste: 01 - 2, 02 - 3, 03 - 10, 04 - 5.

Îmbunătățirea performanței interogărilor în PostgreSQL

Exemple de baze de date

 

Postgres Citus Data, Greenplum, Amazon Redshift
MySQL MariaDB
Oracle Oracle In-Memory Cloud Store
Clickhouse, Apache Druid, CrateDB
Îmbunătățirea performanței interogărilor în PostgreSQL

Schema de informații

Reducerea coloanelor

  • Utilizați SELECT * cu moderație
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
Îmbunătățirea performanței interogărilor în PostgreSQL

Schema de informații

Reducerea coloanelor

  • Utilizați SELECT * cu moderație
  • Utilizați schema de informații
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
Îmbunătățirea performanței interogărilor în PostgreSQL

Scrierea interogărilor

 

  • Examinați fiecare coloană într-o interogare separată
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
-- Structure for column oriented
SELECT MIN(age), MAX(age)
FROM zoo_animals
WHERE species = 'zebra'
-- Structure for row-oriented
SELECT *
FROM zoo_animals
WHERE species = 'zebra'
ORDER BY age
Îmbunătățirea performanței interogărilor în PostgreSQL

Să exersăm!

Îmbunătățirea performanței interogărilor în PostgreSQL

Preparing Video For Download...