Kolomgeoriënteerde opslag

Queryprestaties verbeteren in PostgreSQL

Amy McCarty

Instructor

Kolomgeoriënteerd

Kolomgeoriënteerde opslag

  • Relatie tussen rijen behouden
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

Opgeslagen als

Twee tabellen. De eerste is een lijst met id's en soorten. 01 - panda. 02 - zebra. 03 - zebra. 04 - koala. De tweede is een lijst met id's en leeftijden. 01 - 2. 02 - 3. 03 - 10. 04 - 5.

Queryprestaties verbeteren in PostgreSQL

Focus op analytics - goede match

Eigenschappen van kolomgeoriënteerde opslag

  • Eén kolom op dezelfde locatie
  • Snel alle rijen ophalen
  • Snel kolomberekeningen

Focus: analytics

  • Tellingen, gemiddelden, berekeningen
  • Rapportage
  • Kolomaggregaties

Opgeslagen als

Drie tabellen. De eerste is een lijst met id's en namen. 01 - Bob. 02 - Sunny. 03 - Beco. 04 - Coco. De tweede is een lijst met id's en soorten. 01 - panda. 02 - zebra. 03 - zebra. 04 - koala. De derde is een lijst met id's en leeftijden. 01 - 2. 02 - 3. 03 - 10. 04 - 5.

Queryprestaties verbeteren in PostgreSQL

Focus op transacties - geen goede match

Rijrelaties behouden

  • Traag om alle kolommen op te halen
  • Traag data laden

Focus: transacties

  • Snel records invoegen en verwijderen

Opgeslagen als

Drie tabellen. De eerste is een lijst met id's en namen. 01 - Bob. 02 - Sunny. 03 - Beco. 04 - Coco. De tweede is een lijst met id's en soorten. 01 - panda. 02 - zebra. 03 - zebra. 04 - koala. De derde is een lijst met id's en leeftijden. 01 - 2. 02 - 3. 03 - 10. 04 - 5.

Queryprestaties verbeteren in PostgreSQL

Databasevoorbeelden

 

Postgres Citus Data, Greenplum, Amazon Redshift
MySQL MariaDB
Oracle Oracle In-Memory Cloud Store
Clickhouse, Apache Druid, CrateDB
Queryprestaties verbeteren in PostgreSQL

Informatieschema

Kolommen beperken

  • Gebruik SELECT * spaarzaam
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
Queryprestaties verbeteren in PostgreSQL

Informatieschema

Kolommen beperken

  • Gebruik SELECT * spaarzaam
  • Gebruik het informatieschema
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
Queryprestaties verbeteren in PostgreSQL

Je queries schrijven

 

  • Onderzoek elke kolom met een eigen query
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
-- Structuur voor kolomgeoriënteerd
SELECT MIN(age), MAX(age)
FROM zoo_animals
WHERE species = 'zebra'
-- Structuur voor rijgeoriënteerd
SELECT *
FROM zoo_animals
WHERE species = 'zebra'
ORDER BY age
Queryprestaties verbeteren in PostgreSQL

Laten we oefenen!

Queryprestaties verbeteren in PostgreSQL

Preparing Video For Download...