เปิดตัว PostgreSQL 12

ทีม PostgreSQL ได้ประกาศเปิดตัว PostgreSQL 12 ซึ่งเป็นเวอร์ชันล่าสุดของระบบจัดการฐานข้อมูลเชิงสัมพันธ์แบบโอเพ่นซอร์ส
PostgreSQL 12 ได้ปรับปรุงประสิทธิภาพการสืบค้นอย่างมาก โดยเฉพาะอย่างยิ่งเมื่อทำงานกับข้อมูลจำนวนมาก และยังได้ปรับการใช้พื้นที่ดิสก์โดยทั่วไปให้เหมาะสมอีกด้วย

คุณสมบัติใหม่ได้แก่:

  • การใช้ภาษาคิวรี JSON Path (ส่วนที่สำคัญที่สุดของมาตรฐาน SQL/JSON)
  • การเพิ่มประสิทธิภาพการดำเนินการของนิพจน์ตารางทั่วไป (WITH)
  • รองรับคอลัมน์ที่สร้างขึ้น

ชุมชนยังคงทำงานเกี่ยวกับความสามารถในการขยายและความน่าเชื่อถือของ PostgreSQL ต่อไป การพัฒนาการสนับสนุนสำหรับความเป็นสากล ความสามารถในการพิสูจน์ตัวตน และมอบวิธีที่ง่ายกว่าในการจัดการระบบ

รุ่นนี้รวมถึงการใช้งานอินเทอร์เฟซสำหรับเอ็นจิ้นการจัดเก็บข้อมูลแบบเสียบได้ ซึ่งช่วยให้นักพัฒนาสามารถสร้างวิธีการจัดเก็บข้อมูลของตนเองได้

การปรับปรุงประสิทธิภาพ

PostgreSQL 12 มีการปรับปรุงประสิทธิภาพและการบำรุงรักษาที่สำคัญสำหรับระบบการทำดัชนีและการแบ่งพาร์ติชัน

ดัชนี B-tree ซึ่งเป็นประเภทการจัดทำดัชนีมาตรฐานใน PostgreSQL ได้รับการปรับให้เหมาะสมในเวอร์ชัน 12 สำหรับปริมาณงานที่เกี่ยวข้องกับการแก้ไขดัชนีบ่อยครั้ง การใช้เกณฑ์มาตรฐาน TPC-C สำหรับ PostgreSQL 12 แสดงให้เห็นว่าการใช้พื้นที่ลดลงโดยเฉลี่ย 40% และประสิทธิภาพการค้นหาโดยรวมเพิ่มขึ้น

การสืบค้นกับตารางที่แบ่งพาร์ติชันได้รับการปรับปรุงที่เห็นได้ชัดเจน โดยเฉพาะอย่างยิ่งสำหรับตารางที่ประกอบด้วยพาร์ติชั่นนับพันที่ต้องทำงานกับอาร์เรย์ข้อมูลที่จำกัดเพียงบางส่วนเท่านั้น ประสิทธิภาพของการเพิ่มข้อมูลลงในตารางที่แบ่งพาร์ติชันโดยใช้ INSERT และ COPY ได้รับการปรับปรุง เช่นเดียวกับความสามารถในการแนบพาร์ติชันใหม่โดยไม่ปิดกั้นการสืบค้น

PostgreSQL 12 ได้ทำการปรับปรุงเพิ่มเติมในการจัดทำดัชนีที่ส่งผลกระทบต่อประสิทธิภาพโดยรวม ได้แก่:

  • ลดค่าใช้จ่ายเมื่อสร้าง WAL สำหรับประเภทดัชนี GiST, GIN และ SP-GiST
  • ความสามารถในการสร้างดัชนีที่ครอบคลุมที่เรียกว่า (INCLUDE clause) บนดัชนี GiST
  • ความสามารถในการดำเนินการค้นหา "เพื่อนบ้านที่ใกล้ที่สุด" (การค้นหา k-NN) โดยใช้ตัวดำเนินการระยะทาง (<->) และใช้ดัชนี SP-GiST
  • รองรับการรวบรวมสถิติค่าที่พบบ่อยที่สุด (MCV) โดยใช้ CREATE STATISTICS ซึ่งจะช่วยให้ได้รับแผนการสืบค้นที่ดีขึ้นเมื่อใช้คอลัมน์ที่มีการกระจายค่าไม่สม่ำเสมอ

การคอมไพล์ JIT โดยใช้ LLVM ซึ่งเปิดตัวใน PostgreSQL 11 ได้ถูกเปิดใช้งานตามค่าเริ่มต้นแล้ว การคอมไพล์ JIT ปรับปรุงประสิทธิภาพเมื่อทำงานกับนิพจน์ในส่วนคำสั่ง WHERE รายการเป้าหมาย การรวม และการดำเนินการภายในบางอย่าง จะพร้อมใช้งานหากคุณคอมไพล์ PostgreSQL ด้วย LLVM หรือใช้แพ็คเกจ PostgreSQL ที่สร้างขึ้นโดยเปิดใช้งาน LLVM

การปรับปรุงความสามารถด้านภาษา SQL และความเข้ากันได้มาตรฐาน

PostgreSQL 12 เปิดตัวความสามารถในการสืบค้นเอกสาร JSON โดยใช้นิพจน์เส้นทาง JSON ที่กำหนดในมาตรฐาน SQL/JSON การสืบค้นดังกล่าวสามารถใช้ประโยชน์จากกลไกการจัดทำดัชนีที่มีอยู่สำหรับเอกสารที่จัดเก็บในรูปแบบ JSONB เพื่อดึงข้อมูลได้อย่างมีประสิทธิภาพ

นิพจน์ตารางทั่วไปหรือที่เรียกว่า WITH คิวรี สามารถดำเนินการได้โดยอัตโนมัติโดยใช้การทดแทนใน PostgreSQL 12 ซึ่งจะช่วยปรับปรุงประสิทธิภาพของคิวรีที่มีอยู่จำนวนมากได้ ในเวอร์ชันใหม่ ส่วนทดแทนของแบบสอบถาม WITH จะดำเนินการได้เฉพาะในกรณีที่ไม่ใช่แบบเรียกซ้ำ ไม่มีผลข้างเคียง และมีการอ้างอิงเพียงครั้งเดียวในส่วนถัดไปของแบบสอบถาม

PostgreSQL 12 แนะนำการรองรับ "คอลัมน์ที่สร้างขึ้น" ตามที่อธิบายไว้ในมาตรฐาน SQL ประเภทคอลัมน์นี้จะคำนวณค่าตามเนื้อหาของคอลัมน์อื่นๆ ในตารางเดียวกัน ในเวอร์ชันนี้ PostgreSQL รองรับ "คอลัมน์ที่สร้างขึ้นที่จัดเก็บไว้" โดยที่ค่าที่คำนวณได้จะถูกจัดเก็บไว้ในดิสก์

การทำให้เป็นสากล

PostgreSQL 12 ขยายการรองรับการเปรียบเทียบ ICU โดยอนุญาตให้ผู้ใช้กำหนด "การเปรียบเทียบแบบไม่กำหนด" ซึ่งสามารถอนุญาตการเปรียบเทียบที่ไม่คำนึงถึงตัวพิมพ์เล็กหรือใหญ่ได้

การรับรอง

PostgreSQL ขยายการรองรับวิธีการตรวจสอบสิทธิ์ที่เข้มงวดด้วยการปรับปรุงหลายอย่างที่ให้ความปลอดภัยและฟังก์ชันการทำงานเพิ่มเติม รุ่นนี้จะแนะนำการเข้ารหัสฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์สำหรับการตรวจสอบสิทธิ์ผ่านอินเทอร์เฟซ GSSAPI รวมถึงความสามารถของ PostgreSQL ในการค้นหาเซิร์ฟเวอร์ LDAP เมื่อคอมไพล์ PostgreSQL ด้วย OpenLDAP

นอกจากนี้ PostgreSQL 12 ยังรองรับตัวเลือกการตรวจสอบสิทธิ์แบบหลายปัจจัยอีกด้วย ขณะนี้เซิร์ฟเวอร์ PostgreSQL สามารถกำหนดให้ไคลเอ็นต์จัดเตรียมใบรับรอง SSL ที่ถูกต้องพร้อมชื่อผู้ใช้ที่เกี่ยวข้องโดยใช้ clientcert=verify-full และรวมสิ่งนี้เข้ากับข้อกำหนดวิธีการตรวจสอบสิทธิ์แยกต่างหาก (เช่น scram-sha-256)

การบริหาร

PostgreSQL 12 เปิดตัวความสามารถในการสร้างดัชนีที่ไม่บล็อกใหม่โดยใช้คำสั่ง REINDEX CONCURRENTLY ซึ่งช่วยให้ผู้ใช้สามารถหลีกเลี่ยงการหยุดทำงานของ DBMS ในระหว่างการสร้างดัชนีใหม่ที่ยาวนาน

นอกจากนี้ ใน PostgreSQL 12 คุณสามารถเปิดหรือปิดใช้งานการตรวจสอบหน้าในคลัสเตอร์การปิดระบบได้โดยใช้คำสั่ง pg_checksums ก่อนหน้านี้ การตรวจสอบหน้าซึ่งเป็นคุณสมบัติที่ช่วยตรวจสอบความสมบูรณ์ของข้อมูลที่จัดเก็บไว้ในดิสก์จะเปิดใช้งานได้เฉพาะเมื่อคลัสเตอร์ PostgreSQL ได้รับการเตรียมใช้งานโดยใช้ initdb เท่านั้น

ที่มา: linux.org.ru

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