מדריך לחלוקת מחיצות PostgreSQL

Mdryk Lhlwqt Mhyzwt Postgresql



עבור כל מסד נתונים, ביצועים הם מדד אחד שיש לטפל בו לצורך אמינות יעילה, במיוחד כאשר מדובר בנתונים גדולים. עם PostgreSQL, עליך ליצור את מחיצות הטבלה כדי לחסוך את הזמן והמשאבים הנדרשים לסריקת טבלה בזמן חיפוש רשומה. על ידי פיצול טבלה גדולה לחלקים קטנים יותר, יש צורך בפחות החלפת זיכרון והיישום שלך ישיג ביצועים טובים יותר מכיוון שהוא חוסך בפעולות מסד נתונים.

פוסט זה מכסה את חלוקת PostgreSQL. נדון באפשרויות החלוקה השונות שבהן אתה יכול להשתמש וניתן דוגמאות כיצד להשתמש בהן להבנה טובה יותר.

כיצד ליצור את מחיצות PostgreSQL

כל מסד נתונים יכול להכיל טבלאות רבות עם מספר ערכים. לניהול קל, כדאי לחלק את הטבלאות שהיא שגרת מחסן נתונים מצוינת ומומלצת לאופטימיזציה של מסדי הנתונים ולסיוע באמינות. אתה יכול ליצור מחיצות שונות כולל הרשימה, הטווח וה-hash. בואו נדון בכל אחד בפירוט.







1. חלוקה לרשימה

לפני שנבחן חלוקה כלשהי, עלינו ליצור את הטבלה שבה נשתמש עבור המחיצות. בעת יצירת הטבלה, עקוב אחר התחביר הנתון עבור כל המחיצות:



CREATE TABLE table_name(column1 data_type, column2 data_type) PARTITION BY (partition_key);

ה-'table_name' הוא השם של הטבלה שלך לצד העמודות השונות שיהיו לטבלה וסוגי הנתונים שלהן. עבור 'מפתח_מחיצה', זוהי העמודה שבאמצעותה תתרחש החלוקה. לדוגמה, התמונה הבאה מראה שיצרנו את טבלת ה'קורסים' עם שלוש עמודות. יתר על כן, סוג החלוקה שלנו הוא LIST, ואנחנו בוחרים את עמודת הפקולטה כמפתח המחיצות שלנו:







לאחר יצירת הטבלה, עלינו ליצור את המחיצות השונות שאנו צריכים. לשם כך, המשך עם התחביר הבא:

CREATE TABLE partition_table PARTITION OF main_table FOR VALUES IN (VALUE);

לדוגמה, הדוגמה הראשונה בתמונה הבאה מראה שיצרנו טבלת מחיצות בשם 'Fset' המכילה את כל הערכים בעמודת 'פקולטה' שבחרנו כמפתח המחיצות שלנו שהערך שלה הוא 'FSET'. השתמשנו בלוגיקה דומה עבור שתי המחיצות האחרות שיצרנו.



ברגע שיש לך את המחיצות, תוכל להכניס את הערכים לטבלה הראשית שיצרנו. כל ערך שאתה מוסיף מותאם לחלוקה המתאימה בהתבסס על הערכים במפתח המחיצה שבחרת.

אם נרשום את כל הערכים בטבלה הראשית, נוכל לראות שיש בה את כל הערכים שהכנסנו.

כדי לוודא שיצרנו בהצלחה את המחיצות, בואו נבדוק את הרשומות בכל אחת מהמחיצות שנוצרו.

שימו לב כיצד כל טבלה מחולקת מכילה רק את הערכים התואמים את הקריטריונים המוגדרים בעת חלוקת המחיצות. כך פועלת חלוקה לפי רשימה.

2. חלוקת טווח

קריטריון נוסף ליצירת מחיצות הוא שימוש באפשרות RANGE. לשם כך, עלינו לציין את ערכי ההתחלה והסיום לשימוש עבור הטווח. שימוש בשיטה זו הוא אידיאלי בעבודה עם תמרים.

התחביר שלו ליצירת הטבלה הראשית הוא כדלקמן:

CREATE TABLE table_name(column1 data_type, column2 data_type) PARTITION BY RANGE (partition_key);

יצרנו את הטבלה 'cust_orders' וציינו אותה כדי להשתמש בתאריך בתור 'מחיצה_מפתח' שלנו.

כדי ליצור את המחיצות, השתמש בתחביר הבא:

CREATE TABLE partition_table PARTITION של main_table עבור ערכים FROM (start_value) TO (end_value);

הגדרנו את המחיצות שלנו כך שיעבדו מדי רבעון באמצעות העמודה 'תאריך'.

לאחר יצירת כל המחיצות והכנסת הנתונים, כך נראית הטבלה שלנו:

אם נבדוק את הערכים במחיצות שנוצרו, נוודא שהחלוקה שלנו עובדת ויש לנו רק את הרשומות המתאימות לפי קריטריוני החלוקה שציינו. עבור כל הערכים החדשים שאתה מוסיף לטבלה שלך, הם מתווספים למחיצה המתאימה באופן אוטומטי.

3. Hash Partitioning

קריטריון החלוקה האחרון בו נדון הוא שימוש ב-hash. בואו ניצור במהירות את הטבלה הראשית באמצעות התחביר הבא:

CREATE TABLE table_name(column1 data_type, column2 data_type) PARTITION BY HASH (partition_key);

בעת חלוקה ל-hash, עליך לספק את המודולוס והשאר, השורות שיש לחלק בערך ה-hash של 'partition_key' שצוין. במקרה שלנו, אנו משתמשים במודולוס של 4.

התחביר שלנו הוא כדלקמן:

CREATE TABLE partition_table PARTITION של main_table עבור ערכים עם (MODULUS num1, REMAINDER num2);

המחיצות שלנו הן כדלקמן:

עבור 'main_table', הוא מכיל את הערכים המוצגים ברשימה הבאה:

עבור המחיצות שנוצרו, נוכל לגשת לערכים שלהן במהירות ולוודא שהחלוקה שלנו עובדת.

סיכום

מחיצות PostgreSQL הן דרך שימושית לייעל את מסד הנתונים כדי לחסוך זמן ולשפר את האמינות. דנו בפירוט על החלוקה כולל האפשרויות השונות הזמינות. יתר על כן, סיפקנו דוגמאות כיצד ליישם את המחיצות. נסה אותם!