אופטימיזציה של מסד הנתונים ויישומים

להרצה מהירה של השאילתות במסד הנתונים בעיקר נדרשים:

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

תחזוקת מסד הנתונים בצורה תקינה

סעיף זה מתאר את הפעולות שצריכות להתבצע מעת לעת עבור כל מסד נתונים.

DBA נדרש רק להגדיר הרצה של פעולות באופן אוטומטי (באמצעות cron) ועל ידי ניסוי לבחור את התדירות האופטימלית.

פקודת ANALYZE

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

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

פקודת REINDEX

פקודת REINDEX משמשת לבניה מחדש של האינדקסים הקיימים. תשתמש בה במקרה של:

  • אינדקס פגום
  • עלייה רציפה בגודל של האינדקס

המקרה השני חייב הסבר. האינדקס, כמו הטבלה, מכיל בלוקים של גרסאות הישנות של רשומות.

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

אם הנתונים בטבלה משתנים לעתים קרובות, אז האינדקס יכול לגדול במהירות רבה.

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

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

 

נשמיך עם השימוש באינדקסים