PostgreSQL 14 хувилбар

Жилийн турш хөгжүүлсний дараа PostgreSQL 14 DBMS-ийн шинэ тогтвортой салбар хэвлэгдэн гарлаа. Шинэ салбарын шинэчлэлтүүд 2026 оны XNUMX-р сар хүртэл таван жилийн хугацаанд гарна.

Гол инноваци:

  • Массив маягийн илэрхийлэл ашиглан JSON өгөгдөлд хандах дэмжлэг нэмэгдсэн: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"дунд"';

    Үүнтэй төстэй синтакс нь hstore төрлөөр хангагдсан түлхүүр/утга өгөгдлийн хувьд хэрэгждэг. Энэхүү синтакс нь эхлээд бүх нийтийн хүрээг ашиглан хэрэгжсэн бөгөөд ирээдүйд үүнийг бусад төрөлд ашиглаж болно. hstore төрлийн жишээ: mytable VALUES INSERT INTO ('a=>b, c=>d'); mytable-аас h['a'] СОНГОХ; UPDATE mytable SET h['c'] = 'шинэ';

  • Мужийг тодорхойлох төрлүүдийн бүлгийг шинэ "олон хүрээ" төрлүүдээр өргөжүүлсэн бөгөөд энэ нь утгын давхцаагүй мужуудын эрэмбэлэгдсэн жагсаалтыг зааж өгөх боломжийг олгодог. Одоо байгаа муж бүрийн төрөл бүрээс гадна өөрийн олон мужын төрлийг санал болгож байна, жишээлбэл, "int4range" төрөл нь "int4multirange", "огноо" төрөл нь "огнооны олон талт"-тай тохирч байна. Шинэ төрлүүдийг ашиглах нь мужуудын нарийн төвөгтэй дарааллыг зохицуулдаг асуулгын загварыг хялбаршуулдаг. СОНГОХ '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Олон тооны холболтыг боловсруулдаг өндөр ачаалалтай системийн ажиллагааг сайжруулахын тулд оновчлолуудыг хийсэн. Зарим туршилтанд гүйцэтгэлийн хоёр дахин өсөлт ажиглагдаж байна.
  • В-модны индексүүдийн үр ашиг сайжирч, хүснэгтүүдийг байнга шинэчилж байх үед индексийн өсөлттэй холбоотой асуудал шийдэгдсэн.
  • Үйлчлүүлэгчийн талын (libpq түвшинд хэрэгжсэн) хүсэлтийг дамжуулах горимд нэмэлт дэмжлэг үзүүлсэн нь олон тооны жижиг бичих үйлдлүүд (INSERT/UPDATE/DELETE) хийхтэй холбоотой мэдээллийн сангийн хувилбаруудыг ихээхэн хурдасгах боломжийг олгодог. өмнөх хүсэлтийн үр дүнг хүлээхгүйгээр дараагийн хүсэлт. Энэ горим нь багц хүргэх удаан сааталтай холболтын ажлыг хурдасгахад тусалдаг.
  • Олон PostgreSQL серверүүдийг хамарсан хуваарилагдсан тохиргооны чадавхийг сайжруулсан. Логик хуулбарыг хэрэгжүүлэхэд одоо хийгдэж буй гүйлгээг урсгал горимд илгээх боломжтой болсон бөгөөд энэ нь том гүйлгээг хуулбарлах гүйцэтгэлийг мэдэгдэхүйц сайжруулж чадна. Түүнчлэн, логик хуулбарлах явцад хүлээн авсан өгөгдлийн логик тайлалтыг оновчтой болгосон.
  • Гадаад хүснэгтүүдийг холбох механизм Гадаад Data Wrapper (postgres_fdw) нь зэрэгцээ асуулга боловсруулах дэмжлэгийг нэмсэн бөгөөд энэ нь одоогоор бусад PostgreSQL серверүүдтэй холбогдох үед л хэрэглэгдэх боломжтой. postgres_fdw нь багц горимд гадаад хүснэгтэд өгөгдөл нэмэх, "ГАДААД СХЕМИЙГ ИМПОРТ ОРУУЛАХ" удирдамжийг зааж хуваах хүснэгтүүдийг импортлох боломжийг нэмж өгдөг.
  • VACUUM (хог цуглуулах, дискний хадгалах сав баглаа боодол) ажиллагааг хэрэгжүүлэхэд оновчлол хийсэн. Гүйлгээний ID-г нөхөх нөхцөл бүрдсэн тохиолдолд чухал бус цэвэрлэх үйлдлүүдийг алгасах яаралтай цэвэрлэх горим нэмэгдсэн. B-Tree форматаар индексийг боловсруулахад шаардагдах зардлыг бууруулсан. Мэдээллийн сангийн үйл ажиллагааны талаарх статистик мэдээлэл цуглуулдаг “ШИНЖИЛГЭЭ” үйл ажиллагааны гүйцэтгэл мэдэгдэхүйц хурдассан.
  • Текст эсвэл геометрийн мэдээлэл гэх мэт том өгөгдлийг хадгалах үүрэгтэй TOAST системд ашигладаг шахалтын аргыг тохируулах чадварыг нэмсэн. pglz шахалтын аргаас гадна TOAST одоо LZ4 алгоритмыг ашиглаж болно.
  • 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-д асуулга зэрэгцээ гүйцэтгэх, " МАТЕРИАЛЖУУЛСАН ҮЗЭЛТИЙГ СЭРГЭЭХ”. Цикл үүрлэсэн нэгтгэх (нэгдэх) ажиллагааг сайжруулахын тулд нэмэлт кэш хийх дэмжлэгийг хэрэгжүүлсэн.
  • Нарийвчилсан статистикийг одоо илэрхийллийг оновчтой болгоход ашиглаж болох ба цонхны функцийг оновчтой болгохын тулд шаталсан эрэмбэлэх аргыг ашиглаж болно.
  • Кодын блок дахь гүйлгээг удирдах боломжийг олгодог хадгалагдсан процедурууд нь одоо "OUT" параметрүүдийг ашиглан буцаах өгөгдлийг тодорхойлохыг дэмждэг.
  • Заасан интервалын дагуу цагийн тэмдгийн утгыг дугуйлахад date_bin функцийг нэмсэн. SELECT date_bin('15 минут', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Рекурсив Нийтлэг Хүснэгтийн илэрхийлэл (CTE) дахь циклүүдийг эрэмбэлэх, тодорхойлоход хялбар болгох үүднээс SQL стандартад тодорхойлсон SEARCH болон CYCLE илэрхийлэлүүдийг нэмсэн. РЕКУРСИВ хайлтын_мод(id, холбоос, өгөгдөл) AS ( SELECT t.id, t.link, t.data FROM мод t UNION ALL SELECT t.id, t.link, t.data FROM мод t, search_tree st WHERE t. id = st.link ) ХАЙХ ГҮН ЭХЛҮҮЛЭХ id SET ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • Psql хэрэглүүрт таб бүхий командуудыг автоматаар гүйцээхийг сайжруулж, функцын аргументуудыг харуулах боломжийг “\df” командад нэмж, харуулсан статистикийг “\dX” команд болгон өргөжүүлсэн.
  • Хэрэглэгчдэд зөвхөн унших эсвэл зөвхөн бичих эрхийг олгох боломжтой. Урьдчилан тодорхойлсон pg_read_all_data болон pg_write_all_data үүргийг ашиглан тус тусын хүснэгт, харагдац, схем дээр давуу эрхүүдийг тохируулж болно. pg_read_all_data-ийг хэрэглэгч1-д ОЛГОХ;
  • Шинэ суулгацууд нь md256-ийн оронд SCRAM-SHA-5 ашиглан нууц үгийн баталгаажуулалтыг хийдэг (postgresql.conf үүсгэх үед "password_encryption" параметрийг одоо 'scram-sha-256' болгож тохируулсан).

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх