PostgreSQL 14 DBMS ထုတ်ဝေမဟု

ဖလံ့ဖဌိုသတိုသတက်မဟု တစ်နဟစ်အကဌာတလင် PostgreSQL 14 DBMS ၏ တည်ငဌိမ်သောဌာနခလဲအသစ်ကို ထုတ်ဝေလိုက်ပါသည်။ ဘဏ်ခလဲအသစ်အတလက် အပ်ဒိတ်မျာသကို 2026 ခုနဟစ် နိုဝင်ဘာလအထိ ငါသနဟစ်ကဌာအောင် ထုတ်ပဌန်ပေသပါမည်။

အဓိက တီထလင်ဆန်သသစ်မဟုမျာသ-

  • ခင်သကျင်သပုံတူသောအသုံသအနဟုန်သမျာသကို အသုံသပဌု၍ JSON ဒေတာကို ဝင်ရောက်အသုံသပဌုရန် ပံ့ပိုသမဟု ထပ်လောင်သထည့်သလင်သထာသသည်- SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"medium"';

    အလာသတူ syntax ကို hstore အမျိုသအစာသမဟ ပံ့ပိုသပေသသော သော့/တန်ဖိုသ ဒေတာအတလက် လုပ်ဆောင်ပါသည်။ က syntax ကို universal framework ကို အသုံသပဌု၍ ကနညသတလင် အကောင်အထည် ဖော်ခဲ့ပဌီသ၊ နောင်တလင် အခဌာသအမျိုသအစာသမျာသအတလက် အသုံသပဌုနိုင်ပါသည်။ hstore အမျိုသအစာသအတလက် ဥပမာ- mytable VALUES ထဲသို့ ထည့်သလင်သပါ ('a=>b, c=>d'); mytable မဟ h['a'] ကို SELECT; UPDATE mytable SET h['c'] = 'အသစ်';

  • အပိုင်သအခဌာသမျာသ သတ်မဟတ်ခဌင်သအတလက် အမျိုသအစာသမျာသ၏ မိသာသစုကို "မျိုသစုံ" အမျိုသအစာသအသစ်မျာသဖဌင့် ချဲ့ထလင်ထာသပဌီသ တန်ဖိုသမျာသ ထပ်နေခဌင်သမရဟိသော အပိုင်သအခဌာသမျာသ၏ မဟာယူထာသသောစာရင်သမျာသကို သတ်မဟတ်နိုင်စေပါသည်။ ရဟိပဌီသသာသ အပိုင်သအခဌာသ အမျိုသအစာသ တစ်ခုစီအပဌင်၊ ၎င်သ၏ မျိုသစုံသော အမျိုသအစာသကို အဆိုပဌုထာသသည်၊ ဥပမာ၊ အမျိုသအစာသ "int4range" သည် "int4multirange" နဟင့် ကိုက်ညီပဌီသ အမျိုသအစာသ "daterange" သည် "datemultirange" နဟင့် သက်ဆိုင်ပါသည်။ အမျိုသအစာသအသစ်မျာသကို အသုံသပဌုခဌင်သသည် ရဟုပ်ထလေသသောအပိုင်သအခဌာသမျာသ၏ စီစဥ်မဟုမျာသကို စီမံခန့်ခလဲသည့် queries ဒီဇိုင်သကို ရိုသရဟင်သစေသည်။ SELECT '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(numrange(1.0၊ 14.0)၊ numrange(20.0၊ 25.0));
  • ချိတ်ဆက်မဟု အမျာသအပဌာသကို လုပ်ဆောင်နေသော ဝန်အာသမဌင့်သော စနစ်မျာသ၏ စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ရန် အကောင်သဆုံသပဌင်ဆင်မဟုမျာသ ပဌုလုပ်ထာသပါသည်။ အချို့သော စမ်သသပ်မဟုမျာသတလင် စလမ်သဆောင်ရည် နဟစ်ဆတိုသလာသည်ကို တလေ့ရဟိရသည်။
  • B-tree အညလဟန်သကိန်သမျာသ၏ စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ထာသပဌီသ ဇယာသမျာသကို မကဌာခဏ မလမ်သမံပဌင်ဆင်သည့်အခါ အညလဟန်သကိန်သ ကဌီသထလာသမဟုနဟင့် ပဌဿနာကို ဖဌေရဟင်သပဌီသဖဌစ်သည်။
  • ပေသပို့မဟုဖဌင့် သေသငယ်သော စာရေသခဌင်သလုပ်ငန်သဆောင်ရလက်မဟုမျာသစလာကို လုပ်ဆောင်ခဌင်သနဟင့် ဆက်စပ်နေသော ဒေတာဘေ့စ်အခဌေအနေမျာသကို သိသိသာသာ အရဟိန်မဌဟင့်နိုင်စေသည့် တောင်သဆိုမဟုမျာသ၏ ပိုက်လိုင်သပေသပို့ခဌင်သမုဒ်၏ client-side (libpq အဆင့်တလင် အကောင်အထည်ဖော်သည်) မုဒ်အတလက် ပံ့ပိုသမဟုထပ်ဖဌည့်ထာသသည်။ ယခင်တစ်ခု၏ရလဒ်ကို မစောင့်ဘဲ နောက်တောင်သဆိုချက်။ မုဒ်သည် ရဟည်လျာသသော packet ပေသပို့မဟုနဟောင့်နဟေသမဟုမျာသနဟင့်အတူ ချိတ်ဆက်မဟုမျာသကို အရဟိန်မဌဟင့်ပေသပါသည်။
  • PostgreSQL ဆာဗာမျာသစလာပါ ၀ င်သောဖဌန့်ဝေမဟုဖလဲ့စည်သပုံမျာသအတလက်တိုသမဌဟင့်လုပ်ဆောင်နိုင်မဟု။ ယုတ္တိတန်သောပုံတူကူသချခဌင်သကို အကောင်အထည်ဖော်ခဌင်သသည် ယခုအခါ ထုတ်လလဟင့်မဟုမုဒ်တလင် လုပ်ဆောင်နေသော ငလေလလဟဲပို့မဟုမျာသကို ပေသပို့နိုင်စလမ်သရဟိပဌီသ ကဌီသမာသသောလလဟဲပဌောင်သမဟုမျာသ၏ စလမ်သဆောင်ရည်ကို သိသိသာသာ တိုသတက်ကောင်သမလန်လာစေနိုင်ပါသည်။ ထို့အပဌင်၊ ယုတ္တိပုံတူပလာသမဟုအတလင်သ လက်ခံရရဟိသော ဒေတာမျာသ၏ ယုတ္တိကုဒ်ဖဌင့် ကုဒ်ကို ပိုမိုကောင်သမလန်အောင် ပဌုလုပ်ထာသပါသည်။
  • ပဌင်ပဇယာသမျာသကို ချိတ်ဆက်ရန်အတလက် Foreign Data Wrapper (postgres_fdw) သည် အခဌာသသော PostgreSQL ဆာဗာမျာသသို့ ချိတ်ဆက်သည့်အခါတလင်သာ လက်ရဟိတလင်သာ သက်ဆိုင်သည့် အပဌိုင်မေသမဌန်သမဟု လုပ်ဆောင်ခဌင်သအတလက် ပံ့ပိုသမဟု ထပ်လောင်သပေသထာသသည်။ postgres_fdw သည် အစုလိုက်မုဒ်တလင် ပဌင်ပဇယာသမျာသသို့ ဒေတာထည့်သလင်သခဌင်သနဟင့် “IMPORT FOREIGN scheMA” ညလဟန်ကဌာသချက်ကို သတ်မဟတ်ခဌင်သဖဌင့် ပိုင်သခဌာသထာသသောဇယာသမျာသကို တင်သလင်သနိုင်မဟုကိုလည်သ ပံ့ပိုသပေသပါသည်။
  • VACUUM လည်ပတ်မဟု (အမဟိုက်စုဆောင်သခဌင်သနဟင့် ဒစ်သိုလဟောင်မဟု ထုပ်ပိုသခဌင်သ) ကို အကောင်အထည်ဖော်ရန်အတလက် ပိုမိုကောင်သမလန်အောင် ပဌုလုပ်ထာသပါသည်။ ငလေပေသငလေယူ ID ပတ်၀န်သကျင်အခဌေအနေမျာသကို ဖန်တီသပါက မရဟိမဖဌစ်လိုအပ်သော ရဟင်သလင်သရေသလုပ်ဆောင်မဟုမျာသကို ကျော်သလာသမည့် အရေသပေါ်ရဟင်သလင်သရေသမုဒ်ကို ထည့်သလင်သထာသပါသည်။ B-Tree ဖော်မတ်တလင် အညလဟန်သကိန်သမျာသကို လုပ်ဆောင်သည့်အခါ ပေါ်နေကို လျဟော့ချသည်။ ဒေတာဘေ့စ်၏လည်ပတ်မဟုနဟင့်ပတ်သက်သော စာရင်သအင်သမျာသကို စုဆောင်သပေသသည့် "ANALYZE" လုပ်ဆောင်ချက်ကို အကောင်အထည်ဖော်မဟုသည် သိသိသာသာ အရဟိန်မဌဟင့်ခဲ့သည်။
  • စာသာသတုံသမျာသ သို့မဟုတ် ဂျီဩမေတဌီအချက်အလက်မျာသကဲ့သို့သော ကဌီသမာသသောဒေတာကို သိမ်သဆည်သရန် တာဝန်ရဟိသည့် TOAST စနစ်တလင် အသုံသပဌုသည့် ဖိသိပ်မဟုနည်သလမ်သကို ပဌင်ဆင်သတ်မဟတ်နိုင်သည့် စလမ်သရည်ကို ထည့်သလင်သထာသသည်။ pglz ဖိသိပ်မဟုနည်သလမ်သအပဌင် TOAST သည် LZ4 algorithm ကို ယခုအသုံသပဌုနိုင်ပါပဌီ။
  • DBMS ၏ လည်ပတ်မဟုကို စောင့်ကဌည့်ရန် ကိရိယာမျာသကို တိုသချဲ့ထာသသည်။ COPY ညလဟန်ကဌာသချက်မျာသ (pg_stat_progress_copy)၊ ပုံတူအပေါက်မျာသ (pg_stat_replication_slots) နဟင့် WAL ငလေပေသငလေယူမဟတ်တမ်သ (pg_stat_wal) နဟင့် ဆက်စပ်သည့် လုပ်ဆောင်ချက်မျာသအကဌောင်သ စာရင်သဇယာသမျာသ တိုသတက်မဟုကို ခဌေရာခံရန် မဌင်ကလင်သမျာသကို ထည့်သလင်သထာသသည်။ pg_stat_activity နဟင့် EXPLAIN VERBOSE ကဲ့သို့ အမျိုသမျိုသသော စနစ်ခလဲမျာသဖဌစ်သည့် compute_query_id လုပ်ဆောင်ချက်ကို ထည့်သလင်သထာသပဌီသ တောင်သဆိုချက်တစ်ခုစီအတလက် သီသခဌာသသတ်မဟတ်သတ်မဟတ်ပေသခဌင်သဖဌင့် တောင်သဆိုချက်မျာသကို ခဌေရာခံနိုင်သည်။
  • မေသမဌန်သချက်မျာသ၏ အပဌိုင်လုပ်ဆောင်မဟုကို ပိုမိုကောင်သမလန်စေရန်နဟင့် ဆက်တိုက်လုပ်ဆောင်သည့် မဟတ်တမ်သစကင်န်လုပ်ဆောင်မဟုမျာသကို တစ်ပဌိုင်နက်တည်သလုပ်ဆောင်မဟု၊ “RETURN QUERY” ညလဟန်ကဌာသချက်ကို အသုံသပဌု၍ PL/pgSQL တလင် မေသမဌန်သချက်မျာသ၏ အပဌိုင်လုပ်ဆောင်မဟု၊ နဟင့် "ရဟိမေသခလန်သမျာသ၏ အပဌိုင်လုပ်ဆောင်မဟုတို့ကို တိုသတက်စေရန် query planner တလင် ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သမျာသကို query planner တလင် ထည့်သလင်သထာသပါသည်။ ရုပ်ပိုင်သဆိုင်ရာအမဌင်ကို ပဌန်လည်စတင်ပါ။" cyclic nested integrates (join) ၏ စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ရန်၊ ထပ်တိုသ ကက်ရဟ်အတလက် ပံ့ပိုသမဟုကို အကောင်အထည်ဖော်ခဲ့သည်။
  • ယခုအခါတလင် ဖော်ပဌချက်မျာသကို အကောင်သဆုံသဖဌစ်အောင် လုပ်ဆောင်ရန် အဆင့်မဌင့်စာရင်သအင်သမျာသကို အသုံသပဌုနိုင်ပဌီသ၊ တိုသမဌင့်စီစီခဌင်သကို ယခု window လုပ်ဆောင်ချက်မျာသကို အကောင်သဆုံသဖဌစ်အောင် လုပ်ဆောင်နိုင်ပါပဌီ။
  • ကုဒ်တုံသမျာသတလင် ငလေပေသငလေယူမျာသကို စီမံခန့်ခလဲခလင့်ပဌုသည့် သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသသည် ယခုအခါ "OUT" ဘောင်မျာသကို အသုံသပဌု၍ ဒေတာပဌန်ပို့ခဌင်သကို သတ်မဟတ်ခဌင်သကို ပံ့ပိုသပေသပါသည်။
  • သတ်မဟတ်ထာသသောအချိန်အပိုင်သအခဌာသအလိုက် အချိန်တံဆိပ်တန်ဖိုသမျာသကို အဝိုင်သလိုက်ပဌုလုပ်ရန်အတလက် date_bin လုပ်ဆောင်ချက်ကို ထည့်သလင်သထာသသည်။ SELECT date_bin('15 မိနစ်'၊ TIMESTAMP '2020-02-11 15:44:17'၊ TIMESTAMP '2001-01-01'); 2020-02-11 ၁၅:၃၀:၀၀
  • ထပ်ခါထပ်ခါ Common Table Expressions (CTE) တလင် သံသရာမျာသကို စီစဥ်ရန်နဟင့် ခလဲခဌာသသတ်မဟတ်ရန် ပိုမိုလလယ်ကူစေရန် SQL စံနဟုန်သတလင် သတ်မဟတ်ထာသသော SEARCH နဟင့် CYCLE အသုံသအနဟုန်သမျာသကို ထပ်ထည့်ထာသသည်။ RECURSIVE search_tree(id, link, data) ဖဌင့် AS ( SELECT t.id, t.link, t.data FROM tree t UNION ALL SELECT t.id, t.link, t.data FROM tree t, search_tree st WHERE t. id = st.link ) id အလိုက် ပထမဆုံသ ရဟာဖလေမဟု အသေသစိတ် SET ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • psql utility တလင်၊ tabs မျာသပါရဟိသော command မျာသ၏ အလိုအလျောက်ဖဌည့်စလက်ခဌင်သကို မဌဟင့်တင်ထာသပဌီသ၊ function arguments မျာသကို "\df" command သို့ ထည့်သလင်သထာသပဌီသ၊ ပဌသထာသသော စာရင်သဇယာသမျာသကို "\dX" command သို့ တိုသချဲ့ထာသပါသည်။
  • အသုံသပဌုသူမျာသအတလက် ဖတ်ရဟုရန်သီသသန့် သို့မဟုတ် ရေသသာသီသသန့်အခလင့်အရေသမျာသကို သတ်မဟတ်ပေသနိုင်သည်။ pg_read_all_data နဟင့် pg_write_all_data ကဌိုတင်သတ်မဟတ်ထာသသော အခန်သကဏ္ဍမျာသကို အသုံသပဌု၍ ဇယာသတစ်ခုချင်သစီ၊ ကဌည့်ရဟုမဟုမျာသနဟင့် schemas မျာသတလင် ခံစာသခလင့်မျာသကို သတ်မဟတ်နိုင်ပါသည်။ pg_read_all_data ကို user1 သို့ GRANT;
  • အသစ်ထည့်သလင်သမဟုအသစ်မျာသသည် md256 အစာသ SCRAM-SHA-5 ကို အသုံသပဌု၍ စကာသဝဟက်စစ်မဟန်ကဌောင်သအထောက်အထာသအဖဌစ် ပုံသေဖဌစ်သည် (postgresql.conf ကိုထုတ်ပေသသောအခါ ယခုအခါ "scram-sha-256" သို့ သတ်မဟတ်ထာသသည်)။

source: opennet.ru

မဟတ်ချက် Add