PostgreSQL 11: วิวัฒนาการของการแบ่งพาร์ติชันจาก Postgres 9.6 เป็น Postgres 11

ขอให้มีวันศุกร์ที่ดีนะทุกคน! เวลาเหลือน้อยลงเรื่อยๆ ก่อนเปิดหลักสูตร "DBMS เชิงสัมพันธ์"ดังนั้นวันนี้เราจะแบ่งปันการแปลเนื้อหาที่มีประโยชน์อื่นในหัวข้อนี้

อยู่ในขั้นตอนการพัฒนา PostgreSQL 11 มีงานที่น่าประทับใจในการปรับปรุงการแบ่งพาร์ติชันตาราง การแบ่งตาราง - นี่คือฟังก์ชันที่มีอยู่ใน PostgreSQL มาเป็นเวลานาน แต่จริงๆ แล้วไม่มีอยู่จริงจนกระทั่งเวอร์ชัน 10 ซึ่งกลายเป็นฟังก์ชันที่มีประโยชน์มาก ก่อนหน้านี้เราได้ระบุไว้ว่าการสืบทอดตารางคือการดำเนินการแบ่งพาร์ติชั่นของเรา และนี่เป็นเรื่องจริง เฉพาะวิธีนี้เท่านั้นที่บังคับให้คุณทำงานส่วนใหญ่ด้วยตนเอง ตัวอย่างเช่น หากคุณต้องการแทรกสิ่งอันดับลงในส่วนต่างๆ ระหว่างการ INSERT คุณจะต้องกำหนดค่าทริกเกอร์ให้ดำเนินการนี้ให้กับคุณ การแบ่งพาร์ติชันผ่านการสืบทอดนั้นช้ามากและยากต่อการพัฒนาฟังก์ชันเพิ่มเติมนอกเหนือจากนี้

ใน PostgreSQL 10 เราเห็นการกำเนิดของ "การแบ่งพาร์ติชันแบบประกาศ" ซึ่งเป็นคุณลักษณะที่ออกแบบมาเพื่อแก้ไขปัญหาต่างๆ มากมายที่ไม่สามารถแก้ไขได้โดยใช้วิธีการสืบทอดแบบเก่า สิ่งนี้นำไปสู่เครื่องมือที่ทรงพลังกว่ามากซึ่งทำให้เราสามารถแบ่งข้อมูลในแนวนอนได้!

การเปรียบเทียบคุณสมบัติ

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

PostgreSQL 11: วิวัฒนาการของการแบ่งพาร์ติชันจาก Postgres 9.6 เป็น Postgres 11
PostgreSQL 11: วิวัฒนาการของการแบ่งพาร์ติชันจาก Postgres 9.6 เป็น Postgres 11
PostgreSQL 11: วิวัฒนาการของการแบ่งพาร์ติชันจาก Postgres 9.6 เป็น Postgres 11
1. การใช้การจำกัดข้อยกเว้น
2. เพิ่มเฉพาะโหนด
3. สำหรับตารางที่มีการแบ่งพาร์ติชันซึ่งอ้างอิงถึงตารางที่ไม่มีการแบ่งพาร์ติชันเท่านั้น
4. ดัชนีต้องมีคอลัมน์คีย์ทั้งหมดของพาร์ติชัน
5. ข้อจำกัดมาตราทั้งสองด้านต้องตรงกัน

การปฏิบัติ

เรามีข่าวดีที่นี่ด้วย! เพิ่มวิธีการใหม่แล้ว กำลังลบส่วนต่างๆ- อัลกอริธึมใหม่นี้สามารถกำหนดส่วนที่เหมาะสมได้โดยดูที่เงื่อนไขการสืบค้น WHERE- อัลกอริธึมก่อนหน้านี้ได้ตรวจสอบแต่ละส่วนเพื่อดูว่าสามารถตรงตามเงื่อนไขได้หรือไม่ WHERE- ส่งผลให้เวลาในการวางแผนเพิ่มขึ้นตามจำนวนส่วนที่เพิ่มขึ้น

ใน 9.6 ด้วยการแบ่งพาร์ติชั่นผ่านการสืบทอด การกำหนดเส้นทางทูเพิลลงในพาร์ติชั่นโดยทั่วไปทำได้โดยการเขียนฟังก์ชันทริกเกอร์ที่มีชุดคำสั่ง IF เพื่อแทรกทูเพิลลงในพาร์ติชันที่ถูกต้อง ฟังก์ชันเหล่านี้อาจดำเนินการได้ช้ามาก ด้วยการเพิ่มการแบ่งพาร์ติชันแบบประกาศในเวอร์ชัน 10 การทำงานนี้จะเร็วขึ้นมาก

เมื่อใช้ตารางแบบแบ่งพาร์ติชันที่มี 100 พาร์ติชัน เราสามารถประเมินประสิทธิภาพของการโหลด 10 ล้านแถวลงในตารางที่มี 1 คอลัมน์ BIGINT และ 5 คอลัมน์ INT

PostgreSQL 11: วิวัฒนาการของการแบ่งพาร์ติชันจาก Postgres 9.6 เป็น Postgres 11

ประสิทธิภาพของการสืบค้นตารางนี้เพื่อค้นหาบันทึกที่จัดทำดัชนีหนึ่งรายการและดำเนินการ DML เพื่อจัดการหนึ่งบันทึก (โดยใช้โปรเซสเซอร์เพียง 1 ตัว):

PostgreSQL 11: วิวัฒนาการของการแบ่งพาร์ติชันจาก Postgres 9.6 เป็น Postgres 11

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

ข้อสรุป

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

นี่เป็นบทความสั้น ๆ แต่ค่อนข้างน่าสนใจ แบ่งปันความคิดเห็นของคุณและอย่าลืมลงทะเบียน วันเปิดเทอมโดยภายในหลักสูตรจะสรุปรายละเอียดไว้ดังนี้

ที่มา: will.com

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