Johdanto
kun työskentelet suurten taulukoiden kanssa PostgreSQL: ssä, saatat huomata, että sinun täytyy olla vuorovaikutuksessa tietyn taulukon rivijoukon kanssa yhä uudelleen. Sen sijaan toistuvasti suodatus taulukon saada että osajoukko tietoja, se on tehokkaampaa hakea nämä rivit kerran ja tallentaa ne väliaikaiseen taulukkoon. Tämä opetusohjelma opettaa sinulle, miten luoda temp taulukko ja myöhemmin poistaa sen, kun olet valmis.
Edeltävät opinnot
jos haluat seurata PostgreSQL-esimerkkejä Tässä opetusohjelmassa, varmista, että koneessasi on PostgreSQL-palvelin asennettuna ja konfiguroituna. Palvelun on pyörittävä taustalla.
Linux-ja Windows-käyttäjät voivat ladata PostgreSQL: n täältä.
mikä on PostgreSQL-Väliaikainen taulukko?
Tilapäistaulut ovat olemassa omalla ainutlaatuisella skeemallaan, joten skeemanimeä ei voi antaa, kun tällaisen taulukon luo. Väliaikainen taulukko on olemassa vain niin kauan kuin sen tietokantaistunto– tämä tarkoittaa, että PostgreSQL pudottaa väliaikaisen taulukon automaattisesti lopussa tai tapahtuman tai istunnon.
Otekäyttötapaus PostgreSQL-Väliaikaistaulukolle
Väliaikaistaulukot ovat hyödyllisiä sovelluskehittäjille ja tietokannan ylläpitäjille, jotka ovat säännöllisesti vuorovaikutuksessa suurten tietokantojen kanssa. Ne ovat erityisen arvokkaita tilanteissa, jotka vaativat toistuvaa kyselyä tai käsittelyä pienen datajoukon sisällä suurempi taulukko.
tässä tapauksessa voimme tallentaa suodatetut tiedot väliaikaiseen taulukkoon; voimme sitten käyttää tätä väliaikaista taulukkoa yhä uudelleen menemättä varsinaiseen tietokantaan. Nämä taulukot sijaitsevat sisällä tempdb
, joka on myös tietokantajärjestelmä.
on olemassa kaksi tapaa luoda väliaikainen taulukko. Ensinnäkin TEMPORARY
lauseketta voidaan käyttää CREATE TABLE
lausekkeessa:
1
2 3 |
luo tilapäinen taulukko your_temp_table_name(
); |
Vaihtoehtoisesti voidaan käyttää TEMP
lauseketta:
1
2 3 |
luo TEMP-taulu your_temp_table_name (
… ); |
väliaikaiset taulukot ovat näkyvissä vain siinä istunnossa, jossa se luotiin; muut istunnot eivät voi katsoa sitä.
väliaikaisen taulukon esimerkin luominen
tilapäisen taulukon luominen edellyttää ensin yhteyden muodostamista PostgreSQL-palvelimeemme psql
– komennolla. Sitten luodaan tietokanta, jonka nimi on dbsandbox
.
voimme toteuttaa tämän käyttämällä seuraavaa lausetta:
1
2 3 4 |
postgres=# CREATE DATABASE sandboxdb;
CREATE DATABASE postgres = # \C sandboxdb; olet nyt yhteydessä tietokantaan ”sandboxdb” käyttäjänä ”teamsolo”. |
kun tietokanta on luotu, on aika luoda väliaikainen taulukko käyttäen seuraavaa lausumaa:
1
2 |
sandboxdb=# luo TEMP TABLE temptbl(A INT);
Luo taulukko |
tällä lauseella loimme TEMP
– taulukkomme nimeltä temptbl
sandboxdb
– tietokannan sisälle.
varmistaaksemme, että taulukko luotiin onnistuneesti, voimme käyttää SELECT
lausetta:
1
|
valitse * TEMPTBL: stä;
|
meidän SELECT
tuloksen pitäisi näyttää seuraavanlaiselta:
1
2 3 |
c
— (0 rivit) |
aiemmin tässä osiossa, mainitsimme, että väliaikainen taulukko on näkyvissä vain nykyisen istunnon, jossa se luotiin. Testataan ja katsotaan, onko se totta luomalla toinen istunto PostgreSQL. Tässä uudessa sessiossa yritetään saada yhteys temptable
. Voit tehdä tämän lopettamalla nykyisen yhteyden komennolla \q
ja yrittämällä muodostaa uudelleen yhteyden edellisten vaiheiden avulla. Esimerkki tästä prosessista on alla:
1
2 3 4 5 |
postgres = # \C sandboxdb;
olet nyt yhteydessä tietokantaan ”sandboxdb” käyttäjänä ”teamsolo”. sandboxdb = # SELECT * from temptbl; ERROR: suhdetta ”temptbl” ei ole olemassa rivi 1: Valitse * from temptbl; |
huomaa, että saimme virheen, kun yritimme suorittaa SELECT
operaatiota väliaikaista taulukkoa temptbl
vastaan. Tämä johtuu siitä, että temptbl
pudotettiin PostgreSQL: n toimesta heti, kun suoritimme komennon \q
ja lopetimme kyseisen istunnon.
poistamalla Tilapäispöytäesimerkin
edellisessä osiossa opimme luomaan väliaikaisen pöydän. Nyt puhutaan siitä, miten poistaa tai pudottaa väliaikainen pöytä.
alla on väliaikaisen taulukon pudottamiseen käytetty syntaksi:
1
|
DROP TABLE your_temp_table_name;
|
huomaa, että DROP TABLE
lauseessa ei ole sellaisia lausekkeita kuin TEMPORARY
ja TEMP
, toisin kuin CREATE TABLE
lausekkeessa.
sanotaan, että halusimme pudottaa temptbl
sen session aikana-voimme tehdä sen käyttämällä seuraavaa lausetta:
1
|
sandboxdb=# DROP TABLE temptbl;
|
johtopäätös
ei ole epäilystäkään siitä, että väliaikaiset taulukot voivat auttaa optimoimaan tietokannan vuorovaikutuksia, jolloin voit tallentaa pienemmän rivijoukon suuremmasta taulukosta sen sijaan, että suodattaisit samat tiedot uudelleen ja uudelleen. Tässä opetusohjelmassa selitimme, miten luodaan temp-taulukko ja miten pudotetaan sellainen käyttäen CREATE TEMP TABLE
ja DROP TABLE
– lausekkeita. Käyttämällä esimerkkejä annoimme oppaana, voit luoda ja hallita väliaikaisia taulukoita oman tietokannan vuorovaikutusta.