„PostgreSQL“

Kaip naudoti „PostgreSQL“ materializuotas peržiūras

Kaip naudoti „PostgreSQL“ materializuotas peržiūras

„PostgreSQL“ rodiniai yra grafinės lentelės, kuriose pateikiami duomenys iš atitinkamų lentelių. Taip pat galima modifikuoti įprastas nuomones. „PostgreSQL“ peržiūri vaizdų koncepciją į kitą etapą, leisdamas rodiniams materialiai saugoti informaciją, vadinamus materializuotais rodiniais. Realizuotas rodinys išsaugo daug laiko reikalaujančios, sudėtingos užklausos rezultatus, leidžiant bet kada greitai pateikti rezultatų užklausas. Materializuoti požiūriai dažnai naudojami duomenų saugyklose ir verslo žvalgybos programose, nes jie yra naudingi situacijose, kai reikalinga greita prieiga prie duomenų.

Kodėl verta naudoti materializuotas peržiūras?

Jei peržiūros komanda jums per lėta, galite naudoti materializuotą rodinį. Materializuotos peržiūros yra labai įvairiapusiškos, nes leidžia išsaugoti reprezentaciją duomenų bazėje su trumpesniu prieigos laiku. Tarkime, kad jums reikia sukurti duomenų bazės užklausą, kad galėtumėte prisijungti prie kelių lentelių, pašalinti eiles iš susietos kolekcijos ir lenteles rūšiuoti įvairiais būdais. Tai gali būti sudėtinga ir daug laiko reikalaujanti užklausa, o be materializuotų rodinių jūs išspręsite šią dilemą naudodami materializuotą vaizdą. Šiame straipsnyje mokoma, kaip naudoti materializuotas peržiūras „PostgreSQL“.

Sintaksė

>> SUKURKITE MATERIALIZUOTĄ PERŽIŪROS rodinio_pavadinimą kaip užklausą SU [NE] DUOMENIS;

Šis bendras požiūris paaiškinamas taip:

Kaip naudoti materializuotas peržiūras

Paleiskite „PostgreSQL“ komandinės eilutės apvalkalą, kad pradėtumėte dirbti su materializuotais rodiniais.

Norėdami pradėti naudoti komandų apvalkalą, pateikite serverio pavadinimą, duomenų bazę, kurioje norite dirbti, prievado numerį ir vartotojo vardą. Palikite šias vietas tuščias, jei norite naudoti numatytąją sistemą.

1 pavyzdys: paprastas vaizdas

Norėdami suprasti materializuotą vaizdą, pirmiausia turite suprasti paprastus vaizdus. Taigi, sukurkite naują lentelę „Student“ naudodami komandą CREATE TABLE, kaip pridėta.

>> SUKURTI STALĄ Studentas (sid serijos PAGRINDINIS RAKTAS, sname VARCHAR (100) NE NULL, amžiaus VARCHAR (100) NE NULL);

Po to įterpkite duomenis į jį naudodami užklausą INSERT.

Atsiimkite lentelės „Studentas“ įrašus naudodamiesi paprasto rodinio sakiniu SELECT.

>> PASIRINKTI * IŠ studento;

2 pavyzdys: paprastas materializuotas vaizdas

Atėjo laikas apžvelgti materializuotą vaizdą. Norėdami sukurti materializuotą vaizdą, naudosime lentelę „Studentas“. Sukursime materializuotą rodinį pavadinimu „std_view“ naudodami komandą „CREATE MATERIALIZED VIEW“. Šiame rodinyje iš lentelės „Studentas“ atimsime studento vardo lauką „sname“, sugrupuotus ir surikiuotus didėjimo tvarka stulpelyje „sname“.

>> SUKURKITE MATERIALIZUOTĄ PERŽIŪRĄ std_view AS PASIRINKITE snamą iš studentų grupės pagal sname UŽSAKYMĄ pagal sname;

Dabar, naudodami SELECT užklausą rodiniui vykdyti, grąžinsime studentų vardus lentelės „Studentas“ stulpelyje „sname“.

>> PASIRINKTI * IŠ std_view;

3 pavyzdys: materializuotas vaizdas naudojant WHERE sąlygą

Dabar sukursime materializuotą vaizdą naudodami sąlygą WHERE. Apsvarstykite šią „Student“ lentelę su tam tikrais jos verčių pakeitimais.

Tada sukursime materializuotą rodinį pavadinimu „teststd“ naudodami užklausą „SUKURTI MATERIALIZUOTĄ PAIEŠKĄ“. Pasirinkę lentelės „Studentas“ įrašus, kur stulpelio „age“ vertė yra didesnė nei „25“, naudodami sąlygą WHERE. Užklausa veikia tinkamai, kaip parodyta paveikslėlyje.

>> SUKURKITE MATERIALIZUOTO PERŽIŪROS teststd KAIP PASIRINKTI sid, sname, age OF OF Student WHERE amžius> '25';

Galiausiai vykdysime materializuotą rodinį, kurį ką tik sukūrėme naudodami komandą SELECT, kaip nurodyta toliau. Pamatysite, kad ji grąžins visus įrašus iš lentelės „Studentas“, kurioje stulpelio „age“ vertė yra didesnė nei „25“."

>> PASIRINKTI * IŠ teststd;

4 pavyzdys: atnaujinkite materializuotą rodinį naudodami sąlygą BE DUOMENŲ

Šiame pavyzdyje sukursime materializuotą vaizdą, kuriame naudosime sąlygą BE DUOMENŲ, kad atnaujintume rodinį. Tarkime, kad šioje lentelėje „Studentas“ pateikiami kai kurie jos verčių pakeitimai.

Dabar sukursime materializuotą „teststd“ rodinį. Šis rodinys iš „studento“ lentelės parinks įrašus, kuriuose studentų amžius yra mažesnis nei 40 metų.„Atsiimti įrašai bus grupuojami ir rūšiuojami pagal didėjimo tvarką stulpelyje„ sid “. Užklausos pabaigoje naudosime sąlygą BE DUOMENŲ, kad nurodytume, jog užklausa neišsaugos jokios informacijos materializuotame rodinyje. Žemiau pateiktas rodinys turėtų sėkmingai atlikti šiuos veiksmus.

>> SUKURKITE MATERIALIZUOTO PERŽIŪROS TESTSTD AS SELECT sid, sname, age from Student WHERE age < '40' GROUP BY sid ORDER BY sid WITH NO DATA;

Pridėjus sąlygą „BE DUOMENŲ“ prie materializuoto rodinio, bus sukurta tuščia. Šis materialus rodinys nėra užklausiamas. Kaip matote šiame paveikslėlyje, jis negauna įrašų naujai sukurtame rodinyje.

REFRESH MATERIALIZED VIEW sakinys naudojamas duomenims importuoti į materializuotą rodinį. Užpildykite materializuotą rodinį, vykdydami šią apvalkalo užklausą ATNAUJINTI MATERIALIZUOTĄ PERŽIŪRĄ. Kaip matote, ši užklausa veikė efektyviai.

>> ATNAUJINTI MATERIALIZUOTĄ VAIZDĄ teststd;

Vėl gaukite materializuoto rodinio „teststd“ įrašus naudodami apvalkalo sakinį SELECT. Šį kartą SELECT užklausa veikia tinkamai, nes sakinys „REFRESH“ įkėlė turinį į materializuotą rodinį.

5 pavyzdys: sumažintas materializuotas vaizdas

Ši komanda ištrins materializuotą rodinį.

>> NURODYTI MATERIALIZUOTĄ PERŽIŪRĄ std_view;

Išvada

Šis straipsnis parodė, kaip naudoti materializuotas peržiūras naudojant WHERE sąlygą ir REFRESH užklausas komandinės eilutės apvalkale.

„OpenTTD“ ir „Simutrans“
Sukurti savo transporto modeliavimą gali būti smagu, atpalaiduojanti ir be galo viliojanti. Štai kodėl jūs turite įsitikinti, kad išbandėte kuo daugia...
„OpenTTD“ pamoka
„OpenTTD“ yra vienas iš populiariausių verslo modeliavimo žaidimų. Šiame žaidime turite sukurti nuostabų transporto verslą. Tačiau pradėsite nuo mažda...
„SuperTuxKart“, skirta „Linux“
„SuperTuxKart“ yra puikus pavadinimas, sukurtas nemokamai suteikti „Mario Kart“ patirtį jūsų „Linux“ sistemoje. Tai gana sudėtinga ir smagu žaisti, yr...