PostgreSQL 12 хувилбар

PostgreSQL-ийн баг нээлттэй эхийн харилцааны мэдээллийн сангийн удирдлагын системийн хамгийн сүүлийн хувилбар болох PostgreSQL 12-г гаргаснаа зарлалаа.
PostgreSQL 12 нь асуулгын гүйцэтгэлийг мэдэгдэхүйц сайжруулсан - ялангуяа их хэмжээний өгөгдөлтэй ажиллахад, мөн ерөнхийдөө дискний зайны ашиглалтыг оновчтой болгосон.

Шинэ боломжууд орно:

  • JSON Path асуулгын хэлийг хэрэгжүүлэх (SQL/JSON стандартын хамгийн чухал хэсэг);
  • нийтлэг хүснэгтийн илэрхийллийн гүйцэтгэлийг оновчтой болгох (WITH);
  • үүсгэсэн баганын дэмжлэг

Нийгэмлэг нь PostgreSQL-ийн өргөтгөл, найдвартай байдлын талаар үргэлжлүүлэн ажиллаж, олон улсын болгох дэмжлэг, баталгаажуулалтын чадавхийг хөгжүүлж, системийг удирдах хялбар арга замыг бий болгож байна.

Энэхүү хувилбар нь залгах боломжтой хадгалах хөдөлгүүрт зориулсан интерфейсийг хэрэгжүүлэхийг багтаасан бөгөөд одоо хөгжүүлэгчдэд өөрсдийн өгөгдөл хадгалах аргыг бий болгох боломжийг олгодог.

Гүйцэтгэлийн сайжруулалт

PostgreSQL 12 нь индексжүүлэх, хуваах системүүдийн гүйцэтгэл, засвар үйлчилгээний мэдэгдэхүйц сайжруулалтыг агуулдаг.

PostgreSQL-ийн стандарт индексжүүлэлтийн төрөл болох B-tree индексүүд нь индексийг байнга өөрчлөх шаардлагатай ажлын ачаалалд зориулж 12-р хувилбарт оновчтой болсон. PostgreSQL 12-д TPC-C жишиг үзүүлэлтийг ашигласнаар орон зай ашиглалт дунджаар 40%-иар буурч, асуулгын гүйцэтгэл ерөнхийдөө өссөн байна.

Хуваагдсан хүснэгтүүдийн эсрэг асуулга, ялангуяа өгөгдлийн массивын хязгаарлагдмал хэсгүүдтэй ажиллах шаардлагатай олон мянган хуваалтуудаас бүрдэх хүснэгтүүдийн хувьд мэдэгдэхүйц сайжруулалтыг авсан. INSERT болон COPY ашиглан хуваах хүснэгтэд өгөгдөл нэмэх гүйцэтгэл сайжирч, асуулга хаахгүйгээр шинэ хуваалт хавсаргах боломжтой болсон.

PostgreSQL 12 нь ерөнхий гүйцэтгэлд нөлөөлдөг индексжүүлэх нэмэлт сайжруулалтыг хийсэн бөгөөд үүнд:

  • GiST, GIN болон SP-GiST индексийн төрлүүдэд WAL үүсгэх үед нэмэгдэл зардал багассан;
  • GiST индексүүд дээр хамрах индекс гэж нэрлэгддэг (INCLUDE заалт) үүсгэх чадвар;
  • зайны оператор (<->) болон SP-GiST индексийг ашиглан "хамгийн ойрын хөрш" асуулга (k-NN хайлт) хийх чадвар;
  • CREATE STATISTICS ашиглан хамгийн нийтлэг үнэ цэнийн (MCV) статистикийг цуглуулахад дэмжлэг үзүүлдэг бөгөөд энэ нь утгууд нь жигд бус тархсан багануудыг ашиглах үед илүү сайн асуулгын төлөвлөгөө гаргахад тусалдаг.

PostgreSQL 11-д нэвтрүүлсэн LLVM ашиглан JIT эмхэтгэл нь анхдагчаар идэвхжсэн. JIT эмхэтгэл нь WHERE заалтууд, зорилтот жагсаалтууд, нэгтгэлүүд болон зарим дотоод үйлдлүүд дэх илэрхийллүүдтэй ажиллахад гүйцэтгэлийг сайжруулдаг. Хэрэв та PostgreSQL-ийг LLVM-ээр хөрвүүлсэн эсвэл LLVM-г идэвхжүүлсэн PostgreSQL багц ашиглаж байгаа бол үүнийг ашиглах боломжтой.

SQL хэлний чадвар болон стандарт нийцтэй байдлын сайжруулалт

PostgreSQL 12 нь SQL/JSON стандартад тодорхойлсон JSON замын илэрхийлэлүүдийг ашиглан JSON баримтаас лавлагаа авах боломжийг нэвтрүүлсэн. Ийм асуулга нь өгөгдлийг үр дүнтэй сэргээхийн тулд JSONB форматаар хадгалагдсан баримт бичгүүдийг индексжүүлэх механизмыг ашиглаж болно.

WITH асуулга гэгддэг нийтлэг хүснэгтийн илэрхийллүүд нь PostgreSQL 12-д орлуулалтыг ашиглан автоматаар ажиллах боломжтой бөгөөд энэ нь эргээд одоо байгаа олон асуулгын гүйцэтгэлийг сайжруулахад тусална. Шинэ хувилбарт WITH асуулгын орлуулах хэсгийг зөвхөн рекурсив биш, гаж нөлөөгүй, асуулгын дараагийн хэсэгт зөвхөн нэг удаа лавласан тохиолдолд л гүйцэтгэх боломжтой.

PostgreSQL 12 нь "үүсгэсэн баганууд"-ын дэмжлэгийг нэвтрүүлдэг. SQL стандартад тайлбарласан энэ баганын төрөл нь ижил хүснэгтийн бусад баганын агуулгад үндэслэн утгыг тооцдог. Энэ хувилбарт PostgreSQL нь "хадгалагдсан үүсгэсэн багануудыг" дэмждэг бөгөөд тооцоолсон утгыг дискэн дээр хадгалдаг.

Олон улсын

PostgreSQL 12 нь хэрэглэгчдэд "тодорхойлолтгүй нэгтгэл"-ийг тодорхойлох боломжийг олгосноор ICU-ийн харьцах дэмжлэгийг өргөжүүлдэг бөгөөд энэ нь жишээ нь том жижиг үсгээр эсвэл өргөлт мэдрэгчгүй харьцуулалт хийх боломжийг олгодог.

Гэрчлэлт

PostgreSQL нь нэмэлт аюулгүй байдал, функциональ байдлыг хангадаг хэд хэдэн сайжруулалт бүхий хүчирхэг баталгаажуулалтын аргуудын дэмжлэгийг өргөжүүлдэг. Энэхүү хувилбар нь GSSAPI интерфэйсүүдээр дамжуулан баталгаажуулах зорилгоор үйлчлүүлэгч болон сервер талын шифрлэлт, мөн PostgreSQL-ийг OpenLDAP-тай хөрвүүлсэн үед PostgreSQL-д LDAP серверүүдийг илрүүлэх боломжийг танилцуулсан.

Нэмж дурдахад PostgreSQL 12 нь одоо олон хүчин зүйлийн баталгаажуулалтын сонголтыг дэмждэг. PostgreSQL сервер нь одоо үйлчлүүлэгчээс clientcert=verify-full ашиглан тохирох хэрэглэгчийн нэр бүхий хүчинтэй SSL сертификат өгөхийг шаардах боломжтой бөгөөд үүнийг тусдаа баталгаажуулалтын аргын шаардлага (жишээ нь, scram-sha-256)-тай хослуулах боломжтой.

Захиргаа

PostgreSQL 12 нь REINDEX CONCURRENTLY командыг ашиглан блоклохгүй индексийг дахин бүтээх чадварыг нэвтрүүлсэн. Энэ нь хэрэглэгчдэд индексийг удаан хугацаагаар дахин бүтээх явцад DBMS-ийн сул зогсолтоос зайлсхийх боломжийг олгодог.

Нэмж дурдахад, PostgreSQL 12 дээр та pg_checksums командыг ашиглан унтраах кластерт хуудас шалгах нийлбэрийг идэвхжүүлж эсвэл идэвхгүй болгож болно. Өмнө нь дискэн дээр хадгалагдсан өгөгдлийн бүрэн бүтэн байдлыг шалгахад тусалдаг хуудас шалгах нийлбэрийг зөвхөн PostgreSQL кластерыг initdb ашиглан эхлүүлсэн үед л идэвхжүүлдэг байсан.

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

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