ปล่อย PostgreSQL 12

หลังจากหนึ่งปีของการพัฒนา เผยแพร่แล้ว สาขาใหม่ที่เสถียรของ PostgreSQL 12 DBMS อัปเดตสำหรับสาขาใหม่ จะออกไป เป็นเวลา 2024 ปีจนถึงเดือนพฤศจิกายน XNUMX

หลัก นวัตกรรม:

  • เพิ่มการสนับสนุนสำหรับสร้างคอลัมน์“ ซึ่งคำนวณค่าตามนิพจน์ที่ครอบคลุมค่าของคอลัมน์อื่นในตารางเดียวกัน (คล้ายกับมุมมอง แต่สำหรับแต่ละคอลัมน์) คอลัมน์ที่สร้างขึ้นสามารถมีได้สองประเภท - เก็บไว้และเสมือน ในกรณีแรก ค่าจะถูกคำนวณ ณ เวลาที่เพิ่มหรือเปลี่ยนแปลงข้อมูล และในกรณีที่สอง ในการอ่านแต่ละครั้ง จะขึ้นอยู่กับสถานะปัจจุบันของคอลัมน์อื่นๆ ปัจจุบัน PostgreSQL รองรับเฉพาะคอลัมน์ที่สร้างไว้เท่านั้น
  • เพิ่มความสามารถในการสืบค้นข้อมูลจากเอกสาร JSON โดยใช้ นิพจน์เส้นทางคล้าย XPath และกำหนดไว้ในมาตรฐาน SQL/JSON เพื่อปรับปรุงประสิทธิภาพของการประมวลผลนิพจน์ดังกล่าวสำหรับเอกสารที่จัดเก็บในรูปแบบ JSONB จะใช้กลไกการจัดทำดัชนีที่มีอยู่
  • ตามค่าเริ่มต้น การใช้คอมไพเลอร์ JIT (แบบทันเวลาพอดี) ตามการพัฒนา LLVM ถูกเปิดใช้งานเพื่อเพิ่มความเร็วในการดำเนินการของนิพจน์บางอย่างในระหว่างการประมวลผลแบบสอบถาม SQL ตัวอย่างเช่น JIT มีประโยชน์ในการเพิ่มความเร็วของนิพจน์ภายในบล็อก WHERE รายการเป้าหมาย นิพจน์รวม และการดำเนินการภายในบางอย่าง
  • ปรับปรุงประสิทธิภาพการจัดทำดัชนีอย่างเห็นได้ชัด ดัชนี B-tree ได้รับการปรับให้ทำงานในเงื่อนไขของการเปลี่ยนแปลงดัชนีบ่อยครั้ง - ในการทดสอบ TPC-C มีการเพิ่มประสิทธิภาพโดยรวมและการใช้พื้นที่ดิสก์ลดลงโดยเฉลี่ย 40% ลดค่าใช้จ่ายในการบันทึกการเขียนล่วงหน้า (WAL) สำหรับประเภทดัชนี GiST, GIN และ SP-GiST เพิ่มความสามารถในการสร้างดัชนี wrapper (ผ่านคำสั่ง INCLUDE) สำหรับ GiST ที่มีคอลัมน์เพิ่มเติม ในการดำเนินการ สร้างสถิติ รองรับสถิติค่าทั่วไปส่วนใหญ่ (MCV) เพื่อสร้างแผนการสืบค้นที่เหมาะสมยิ่งขึ้นเมื่อใช้คอลัมน์ที่กระจายไม่สม่ำเสมอ
  • การนำการแบ่งพาร์ติชันไปใช้ (การแบ่งพาร์ติชัน) ได้รับการปรับให้เหมาะสมสำหรับการสืบค้นที่ครอบคลุมตารางที่มีพาร์ติชันนับพัน แต่จำกัดให้เรียกข้อมูลชุดย่อยที่จำกัด เพิ่มประสิทธิภาพของการเพิ่มข้อมูลลงในตารางที่แบ่งพาร์ติชันโดยใช้การดำเนินการ INSERT และ COPY และความสามารถในการเพิ่มพาร์ติชันใหม่ผ่าน "ALTER TABLE ATTACH PARTITION" โดยไม่บล็อกการดำเนินการค้นหา
  • เพิ่มการรองรับการขยายอินไลน์อัตโนมัติของนิพจน์ตารางทั่วไป (การแสดงออกของตารางทั่วไป, CTE) ที่อนุญาตให้ใช้ชุดผลลัพธ์ที่มีชื่อชั่วคราวซึ่งระบุโดยใช้คำสั่งย่อย WITH การปรับใช้แบบอินไลน์ช่วยปรับปรุงประสิทธิภาพของข้อความค้นหาส่วนใหญ่ แต่จนถึงตอนนี้จะใช้เฉพาะกับ CTE แบบไม่เรียกซ้ำเท่านั้น
  • เพิ่มการสนับสนุน ไม่ได้กำหนด คุณสมบัติของโลแคล "การเรียง" ซึ่งช่วยให้คุณตั้งค่ากฎการเรียงลำดับและวิธีการเรียงโดยคำนึงถึงความหมายของอักขระ (เช่น เมื่อเรียงลำดับค่าดิจิทัล การมีเครื่องหมายลบและจุดอยู่หน้าตัวเลขและประเภทต่างๆ คำนึงถึงการสะกดและเมื่อเปรียบเทียบจะไม่คำนึงถึงตัวพิมพ์ใหญ่และเครื่องหมายเน้นเสียง) ;
  • เพิ่มการรองรับสำหรับการตรวจสอบไคลเอ็นต์แบบหลายปัจจัย ซึ่ง pg_hba.conf สำหรับการตรวจสอบสามารถรวมการตรวจสอบใบรับรอง SSL (clientcert=verify-full) ด้วยวิธีการตรวจสอบเพิ่มเติม เช่น scram-sha-256
  • เพิ่มการรองรับการเข้ารหัสของช่องทางการสื่อสารเมื่อตรวจสอบสิทธิ์ผ่าน กสซาปี้ทั้งบนฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์
  • เพิ่มการรองรับสำหรับการกำหนดเซิร์ฟเวอร์ LDAP ตามระเบียน "DNS SRV" หาก PostgreSQL สร้างด้วย OpenLDAP
  • เพิ่มการดำเนินการ "REINDEX พร้อมกัน» เพื่อสร้างดัชนีใหม่โดยไม่ปิดกั้นการเขียนดัชนี
  • เพิ่มทีมแล้ว pg_checksumsซึ่งช่วยให้ฐานข้อมูลที่มีอยู่เปิดใช้งานและปิดใช้งานการตรวจสอบผลรวมตรวจสอบของหน้าข้อมูล (ก่อนหน้านี้รองรับการดำเนินการนี้ระหว่างการเริ่มต้นฐานข้อมูลเท่านั้น)
  • จัดเตรียมตัวบ่งชี้ความคืบหน้าสำหรับการดำเนินการ CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL และ pg_checksums
  • เพิ่มคำสั่ง "สร้างวิธีการเข้าถึง» เพื่อเชื่อมต่อตัวจัดการสำหรับวิธีการจัดเก็บตารางแบบใหม่ที่ปรับให้เหมาะกับงานเฉพาะต่างๆ ปัจจุบัน วิธีการเข้าถึงตารางในตัวเพียงอย่างเดียวคือ "ฮีป";
  • ไฟล์การกำหนดค่า recovery.conf ถูกรวมเข้ากับ postgresql.conf เป็นตัวบ่งชี้การเปลี่ยนไปสู่สถานะของการกู้คืนหลังจากความล้มเหลวในขณะนี้ ควร ใช้ไฟล์ recovery.signal และ standby.signal

ที่มา: opennet.ru

เพิ่มความคิดเห็น