14 คะแนน โดย GN⁺ 2023-09-15 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • PostgreSQL 16 ปรับปรุงด้านความขนานของคิวรี การโหลดข้อมูลปริมาณมาก และการทำ logical replication อย่างเห็นได้ชัด ส่งผลให้ประสิทธิภาพดีขึ้น
  • เพิ่มไวยากรณ์ SQL/JSON มากขึ้น สถิติการมอนิเตอร์ชุดใหม่สำหรับเวิร์กโหลด และเพิ่มความยืดหยุ่นในการกำหนดกฎการควบคุมการเข้าถึง

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

  • ตัววางแผนคิวรีสามารถทำให้ FULL และ RIGHT join ทำงานแบบขนานได้แล้ว และสร้างแผนที่เหมาะสมยิ่งขึ้นสำหรับคิวรีที่ใช้ DISTINCT หรือ ORDER BY ใช้ incremental sort กับคิวรี SELECT DISTINCT และปรับแต่ง window function
  • ปรับปรุงการโหลดข้อมูลแบบ bulk ด้วย COPY ทั้งในงานเดี่ยวและงานพร้อมกัน โดยในบางกรณีประสิทธิภาพเพิ่มขึ้นได้สูงสุด 300%
  • เพิ่มการเร่งความเร็วด้วย CPU โดยใช้ SIMD บนสถาปัตยกรรม x86 และ ARM เพื่อเพิ่มประสิทธิภาพในการประมวลผลสตริง ASCII และ JSON รวมถึงการค้นหาอาร์เรย์และ subtransaction

Logical replication

  • ตอนนี้สามารถทำ logical replication จากอินสแตนซ์ standby ได้แล้ว ทำให้มีทางเลือกใหม่ในการกระจายงาน
    • ใช้ standby ที่ไม่ยุ่งแทน primary ที่มีภาระงานสูงเพื่อจำลองการเปลี่ยนแปลงไปยัง downstream
  • ประสิทธิภาพของ logical replication ยังได้รับการปรับปรุงด้วย
    • subscriber สามารถใช้ parallel worker เพื่อประมวลผลธุรกรรมขนาดใหญ่ได้
    • สำหรับตารางที่ไม่มี primary key สามารถใช้ดัชนี B-tree เพื่อค้นหาแถวแทนการสแกนตามลำดับได้
    • ในบางเงื่อนไขสามารถใช้รูปแบบไบนารีเพื่อเร่งความเร็วในการซิงก์ตารางครั้งแรกได้

ประสบการณ์นักพัฒนา

  • เพิ่มไวยากรณ์จากมาตรฐาน SQL/JSON มากขึ้น รวมถึง constructor และ predicate เช่น JSON_ARRAY(), JSON_ARRAYAGG(), IS JSON
  • สามารถใช้ขีดล่างในตัวเลขหลักพันได้ (5_432_000)
  • ใน psql มีการเพิ่ม \bind เพื่อให้เขียนคิวรีที่มีพารามิเตอร์และแทนที่ด้วยตัวแปรได้
  • ปรับปรุงการรองรับการจัดเรียงข้อความ

การมอนิเตอร์

  • เพิ่ม pg_stat_io ที่ให้เมตริกสำหรับวิเคราะห์รูปแบบการเข้าถึง I/O ได้อย่างละเอียด
  • เพิ่มฟิลด์ timestamp ในมุมมอง pg_stat_all_tables เพื่อบันทึกเวลาที่ตารางหรือดัชนีถูกสแกนครั้งล่าสุด
  • ทำให้ auto_explain อ่านง่ายขึ้นด้วยการบันทึกค่าที่ส่งให้กับคำสั่งแบบ parameterized

การควบคุมการเข้าถึงและความปลอดภัย

  • เพิ่มตัวเลือกที่ละเอียดมากขึ้นสำหรับการควบคุมการเข้าถึง
  • ปรับปรุงความสามารถด้านความปลอดภัยอื่น ๆ รวมถึงการจัดการไฟล์ pg_hba.conf และ pg_ident.conf และการเพิ่มพารามิเตอร์การเชื่อมต่อฝั่งไคลเอนต์ที่เน้นความปลอดภัยหลายรายการ

1 ความคิดเห็น

 
GN⁺ 2023-09-15
ความคิดเห็นจาก Hacker News
  • การเปิดตัว PostgreSQL 16 ถูกเปรียบว่าเป็นความสำเร็จสำคัญระดับเดียวกับการลงจอดบนดวงจันทร์ เพราะต้องอาศัยแรงงานที่ไม่ได้รับค่าตอบแทนและความทุ่มเททางความคิดจำนวนมหาศาลในการดูแลโครงการโอเพนซอร์สขนาดใหญ่ที่ดำเนินมายาวนานหลายทศวรรษ
  • ผู้แสดงความคิดเห็นชื่นชมทีม PostgreSQL และเน้นย้ำความสำคัญของโครงสร้างพื้นฐานซอฟต์แวร์ โดยเปรียบเทียบกับโครงสร้างพื้นฐานทางกายภาพอย่างสะพานและถนน
  • PostgreSQL 16 ได้เพิ่มฟีเจอร์ใหม่ \bind ซึ่งได้รับความนิยมเพราะทำให้สามารถรันคำสั่งคิวรีแบบใส่พารามิเตอร์ได้เช่นเดียวกับที่แอปพลิเคชันทำ
  • การเพิ่ม SQL/JSON constructors และ identity functions ถือเป็นการปรับปรุงคุณภาพการใช้งานใน PostgreSQL 16
  • มีความคาดหวังต่อฟีเจอร์ direct I/O ที่ตอนนี้ยังอยู่หลังการตั้งค่า debug_io_direct
  • มีคำถามเกี่ยวกับการปรับปรุงฟีเจอร์ "vacuum" ที่ใช้ในการเพิ่มประสิทธิภาพฐานข้อมูล
  • มีคำถามว่าในรีลีสถัด ๆ ไป มีการพิจารณาให้การเข้ารหัสแบบโปร่งใสเป็นค่าเริ่มต้นหรือไม่
  • ผู้ใช้แสดงความตื่นเต้นกับรีลีสใหม่นี้ แต่ก็กล่าวว่าตนได้ติดตั้ง PostgreSQL 15 บน Debian รุ่นล่าสุดแล้ว และอาจต้องไปศึกษาฟีเจอร์ใหม่ ๆ ที่อาจเป็นประโยชน์กับตน