Tutorial sa Paghati ng PostgreSQL

Tutorial Sa Paghati Ng Postgresql



Para sa anumang database, ang pagganap ay isang sukatan na dapat matugunan para sa epektibong pagiging maaasahan, lalo na kapag may malaking data. Sa PostgreSQL, dapat kang lumikha ng mga partisyon ng talahanayan upang makatipid ng oras at mga mapagkukunan na kinakailangan upang mag-scan ng isang talahanayan habang naghahanap ng isang tala. Sa pamamagitan ng paghahati ng isang malaking talahanayan sa mas maliliit na bahagi, mas kaunting memory swap ang kailangan at mas gagana ang iyong application habang nakakatipid ito sa mga operasyon ng database.

Ang post na ito ay sumasaklaw sa PostgreSQL partitioning. Tatalakayin natin ang iba't ibang opsyon sa partitioning na maaari mong gamitin at magbibigay ng mga halimbawa kung paano gamitin ang mga ito para sa mas mahusay na pag-unawa.

Paano Gumawa ng PostgreSQL Partition

Ang anumang database ay maaaring maglaman ng maraming mga talahanayan na may maraming mga entry. Para sa madaling pamamahala, dapat mong hatiin ang mga talahanayan na isang mahusay at inirerekomendang gawain sa warehouse ng data para sa pag-optimize ng database at upang makatulong sa pagiging maaasahan. Maaari kang lumikha ng iba't ibang mga partisyon kabilang ang listahan, saklaw, at hash. Talakayin natin ang bawat isa nang detalyado.







1. Paghahati ng Listahan

Bago isaalang-alang ang anumang paghahati, kailangan nating lumikha ng talahanayan na gagamitin natin para sa mga partisyon. Kapag lumilikha ng talahanayan, sundin ang ibinigay na syntax para sa lahat ng mga partisyon:



GUMAWA NG TABLE table_name(column1 data_type, column2 data_type) PARTITION BY (partition_key);

Ang 'table_name' ay ang pangalan para sa iyong talahanayan sa tabi ng iba't ibang column na magkakaroon ng talahanayan at ang mga uri ng data ng mga ito. Para sa 'partition_key', ito ang column kung saan magaganap ang partitioning. Halimbawa, ipinapakita ng sumusunod na larawan na ginawa namin ang talahanayan ng 'mga kurso' na may tatlong column. Bukod dito, ang aming uri ng partitioning ay LIST, at pinipili namin ang column ng faculty bilang aming partitioning key:







Kapag nalikha na ang talahanayan, dapat tayong lumikha ng iba't ibang partisyon na kailangan natin. Para diyan, magpatuloy sa sumusunod na syntax:

GUMAWA NG TABLE partition_table PARTITION NG main_table PARA SA MGA HALAGA SA (VALUE);

Halimbawa, ang unang halimbawa sa sumusunod na larawan ay nagpapakita na gumawa kami ng partition table na pinangalanang 'Fset' na naglalaman ng lahat ng value sa column na 'faculty' na pinili namin bilang aming partition key na ang value ay 'FSET'. Gumamit kami ng katulad na lohika para sa iba pang dalawang partisyon na aming nilikha.



Sa sandaling mayroon ka ng mga partisyon, maaari mong ipasok ang mga halaga sa pangunahing talahanayan na aming nilikha. Ang bawat value na ipinasok mo ay tumutugma sa kaukulang partitioning batay sa mga value sa partition key na iyong pinili.

Kung ilista natin ang lahat ng mga entry sa pangunahing talahanayan, makikita natin na mayroon itong lahat ng mga entry na ipinasok natin.

Upang ma-verify na matagumpay naming nagawa ang mga partisyon, tingnan natin ang mga talaan sa bawat isa sa mga nilikhang partisyon.

Pansinin kung paano hawak lamang ng bawat nakabahaging talahanayan ang mga entry na tumutugma sa pamantayan na tinukoy kapag naghahati. Ganyan gumagana ang paghahati ayon sa listahan.

2. Paghahati ng Saklaw

Ang isa pang pamantayan para sa paglikha ng mga partisyon ay ang paggamit ng opsyon na RANGE. Para dito, dapat nating tukuyin ang simula at wakas na mga halaga na gagamitin para sa hanay. Ang paggamit ng paraang ito ay mainam kapag nagtatrabaho sa mga petsa.

Ang syntax nito para sa paglikha ng pangunahing talahanayan ay ang mga sumusunod:

GUMAWA NG TABLE table_name(column1 data_type, column2 data_type) PARTITION BY RANGE (partition_key);

Ginawa namin ang talahanayan ng 'cust_orders' at tinukoy ito upang gamitin ang petsa bilang aming 'partition_key'.

Upang lumikha ng mga partisyon, gamitin ang sumusunod na syntax:

GUMAWA NG TABLE partition_table PARTITION NG main_table PARA SA MGA HALAGA MULA (start_value) HANGGANG (end_value);

Tinukoy namin ang aming mga partisyon na gagana kada quarter gamit ang column na 'petsa'.

Matapos gawin ang lahat ng mga partisyon at ipasok ang data, ganito ang hitsura ng aming talahanayan:

Kung susuriin namin ang mga entry sa ginawang partition, ibe-verify namin na gumagana ang aming partitioning at mayroon lang kaming mga naaangkop na record ayon sa pamantayan ng partitioning na aming tinukoy. Para sa lahat ng mga bagong entry na idinagdag mo sa iyong talahanayan, awtomatikong idaragdag ang mga ito sa kaukulang partisyon.

3. Hash Partitioning

Ang huling pamantayan sa paghahati na tatalakayin natin ay ang paggamit ng hash. Mabilis nating likhain ang pangunahing talahanayan gamit ang sumusunod na syntax:

GUMAWA NG TABLE table_name(column1 data_type, column2 data_type) PARTITION BY HASH (partition_key);

Kapag naghahati sa hash, dapat mong ibigay ang modulus at natitira, ang mga hilera na hahatiin sa halaga ng hash ng iyong tinukoy na 'partition_key'. Para sa aming kaso, gumagamit kami ng isang modulus na 4.

Ang aming syntax ay ang mga sumusunod:

GUMAWA NG TABLE partition_table PARTITION NG main_table PARA SA MGA HALAGA NA MAY (MODULUS num1, REMAINDER num2);

Ang aming mga partisyon ay ang mga sumusunod:

Para sa 'main_table', naglalaman ito ng mga entry na ipinapakita sa mga sumusunod:

Para sa mga nilikhang partisyon, mabilis nating maa-access ang kanilang mga entry at ma-verify na gumagana ang ating paghati.

Konklusyon

Ang mga partisyon ng PostgreSQL ay isang madaling paraan ng pag-optimize ng database upang makatipid ng oras at mapahusay ang pagiging maaasahan. Tinalakay namin nang detalyado ang partitioning kasama ang iba't ibang opsyon na magagamit. Bukod dito, nagbigay kami ng mga halimbawa kung paano ipatupad ang mga partisyon. Subukan ang mga ito!