บทช่วยสอนการแบ่งพาร์ติชัน PostgreSQL

Bth Chwy Sxn Kar Baeng Phar Ti Chan Postgresql



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

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

วิธีสร้างพาร์ติชัน PostgreSQL

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







1. การแบ่งพาร์ติชันรายการ

ก่อนที่จะพิจารณาการแบ่งพาร์ติชั่นใด ๆ เราต้องสร้างตารางที่เราจะใช้สำหรับพาร์ติชั่นนั้น เมื่อสร้างตาราง ให้ปฏิบัติตามไวยากรณ์ที่กำหนดสำหรับพาร์ติชันทั้งหมด:



สร้างตาราง table_name (column1 data_type, column2 data_type) แบ่งส่วนตาม (partition_key);

“table_name” คือชื่อของตารางข้างคอลัมน์ต่างๆ ที่ตารางจะมีและประเภทข้อมูล สำหรับ “partition_key” จะเป็นคอลัมน์ที่การแบ่งพาร์ติชันจะเกิดขึ้น ตัวอย่างเช่น รูปภาพต่อไปนี้แสดงให้เห็นว่าเราสร้างตาราง “หลักสูตร” ที่มีสามคอลัมน์ นอกจากนี้ ประเภทการแบ่งพาร์ติชันของเราคือ LIST และเราเลือกคอลัมน์คณะเป็นคีย์การแบ่งพาร์ติชันของเรา:







เมื่อสร้างตารางแล้ว เราต้องสร้างพาร์ติชันต่างๆ ที่เราต้องการ เพื่อดำเนินการตามไวยากรณ์ต่อไปนี้:

สร้างตาราง partition_table พาร์ติชันของ main_table สำหรับค่าใน (VALUE);

ตัวอย่างเช่น ตัวอย่างแรกในภาพต่อไปนี้แสดงให้เห็นว่าเราสร้างตารางพาร์ติชั่นชื่อ “Fset” ซึ่งเก็บค่าทั้งหมดในคอลัมน์ “คณะ” ที่เราเลือกเป็นพาร์ติชั่นคีย์ที่มีค่าเป็น “FSET” เราใช้ตรรกะที่คล้ายกันสำหรับอีกสองพาร์ติชันที่เราสร้างขึ้น



เมื่อคุณมีพาร์ติชันแล้ว คุณสามารถแทรกค่าลงในตารางหลักที่เราสร้างขึ้นได้ แต่ละค่าที่คุณแทรกจะถูกจับคู่กับการแบ่งพาร์ติชั่นที่เกี่ยวข้องตามค่าในพาร์ติชั่นคีย์ที่คุณเลือก

หากเราแสดงรายการทั้งหมดในตารางหลัก เราจะเห็นว่าตารางนั้นมีรายการทั้งหมดที่เราแทรกไว้

เพื่อตรวจสอบว่าเราสร้างพาร์ติชั่นสำเร็จแล้ว ให้ตรวจสอบบันทึกในแต่ละพาร์ติชั่นที่สร้างขึ้น

โปรดสังเกตว่าแต่ละตารางที่แบ่งพาร์ติชันจะเก็บเฉพาะรายการที่ตรงกับเกณฑ์ที่กำหนดไว้เมื่อทำการแบ่งพาร์ติชันเท่านั้น นั่นคือวิธีการแบ่งพาร์ติชั่นตามรายการ

2. การแบ่งช่วง

เกณฑ์อีกประการหนึ่งสำหรับการสร้างพาร์ติชันคือการใช้ตัวเลือก RANGE สำหรับสิ่งนี้ เราต้องระบุค่าเริ่มต้นและสิ้นสุดเพื่อใช้สำหรับช่วง การใช้วิธีนี้เหมาะอย่างยิ่งเมื่อทำงานกับวันที่

ไวยากรณ์สำหรับการสร้างตารางหลักมีดังนี้:

สร้างตาราง table_name (column1 data_type, column2 data_type) พาร์ติชันตามช่วง (partition_key);

เราสร้างตาราง “cust_orders” และระบุให้ใช้วันที่เป็น “partition_key” ของเรา

หากต้องการสร้างพาร์ติชัน ให้ใช้ไวยากรณ์ต่อไปนี้:

สร้างตาราง partition_table ส่วนของ main_table สำหรับค่าจาก (start_value) ถึง (end_value);

เรากำหนดพาร์ติชันของเราให้ทำงานรายไตรมาสโดยใช้คอลัมน์ 'วันที่'

หลังจากสร้างพาร์ติชันทั้งหมดและใส่ข้อมูลแล้ว ตารางของเราก็จะมีลักษณะดังนี้:

หากเราตรวจสอบรายการในพาร์ติชันที่สร้างขึ้น เราจะตรวจสอบว่าการแบ่งพาร์ติชันของเราใช้งานได้ และเรามีบันทึกที่เหมาะสมตามเกณฑ์การแบ่งพาร์ติชันที่เราระบุไว้เท่านั้น สำหรับรายการใหม่ทั้งหมดที่คุณเพิ่มลงในตาราง รายการเหล่านั้นจะถูกเพิ่มลงในพาร์ติชันที่เกี่ยวข้องโดยอัตโนมัติ

3. การแบ่งพาร์ติชันแฮช

เกณฑ์การแบ่งพาร์ติชันสุดท้ายที่เราจะพูดถึงคือการใช้แฮช มาสร้างตารางหลักอย่างรวดเร็วโดยใช้ไวยากรณ์ต่อไปนี้:

สร้างตาราง table_name (column1 data_type, column2 data_type) แบ่งพาร์ติชันตาม HASH (partition_key);

เมื่อทำการแบ่งพาร์ติชันด้วยแฮช คุณต้องระบุโมดูลัสและส่วนที่เหลือ ซึ่งเป็นแถวที่จะหารด้วยค่าแฮชของ 'partition_key' ที่คุณระบุ สำหรับกรณีของเรา เราใช้โมดูลัสเป็น 4

ไวยากรณ์ของเราเป็นดังนี้:

สร้างตาราง partition_table พาร์ติชันของ main_table สำหรับค่าด้วย (MODULUS num1, REMAINDER num2);

พาร์ติชั่นของเรามีดังนี้:

สำหรับ “main_table” ประกอบด้วยรายการที่แสดงดังต่อไปนี้:

สำหรับพาร์ติชันที่สร้างขึ้น เราสามารถเข้าถึงรายการได้อย่างรวดเร็วและตรวจสอบว่าการแบ่งพาร์ติชันของเราทำงานหรือไม่

บทสรุป

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