Sobes.tech
Senior

Ինչպես է աշխատում բաժանումը PostgreSQL-ում մեքենայի տակ?

sobes.tech AI

Պատասխան AI-ից

PostgreSQL-ում բաժանարարումը իրականացնում է ծնողական և երեխայական աղյուսակների կոնցեպցիայի միջոցով (partitioned tables և partitions): Մեքենայի տակ, երբ ստեղծվում է բաժանարար աղյուսակ, ստեղծվում է ծնողական աղյուսակ առանց տվյալների, իսկ տվյալները ֆիզիկապես պահվում են երեխայական աղյուսակներում, որոնք համապատասխան են որոշակի տիրույթին կամ արժեքների ցանկին (range/list partitioning):

Երբ գալիս է ներմուծման կամ ընտրության հարցում, հարցերի պլանավորիչը որոշում է, թե տվյալները որ բաժանմունքում են, օգտագործելով բաժանման կանոնները: Սա թույլ է տալիս զգալիորեն կրճատել սկանավորելի տվյալների ծավալը և բարելավել կատարողականությունը:

Օրինակ՝ եթե կա պատվերների աղյուսակ, որը բաժանված է ամսաթվի վրա, ապա կոնկրետ ամսվա պատվերների հարցումները միայն կապվում են համապատասխան բաժանմունքի հետ, ոչ թե ամբողջ աղյուսակին:

Ներքին, PostgreSQL-ը օգտագործում է ժառանգականություն և տրիգերներ տվյալների ուղարկման համար, և տարբերակ 10-ից սկսած՝ ավելի օպտիմալ մեխանիզմ՝ դեկլարատիվ բաժանման աջակցությամբ։