PracticU

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

בלי כתוביותעם כתוביות
PracticU › קורס DBA אפליקטיבי - שפת SQL למתחילים › אינדקס - למה ביצועים משתפרים
מילון מושגים:
אינדקס - מבנה במסד נתונים שמאיץ חיפוש ושליפה. גם מספר המציין מיקום של איבר במערך.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.
Join - פעולת SQL שמשלבת שורות משתי טבלאות או יותר על בסיס קשר ביניהן.
שאילתה - בקשה למסד נתונים לשלוף, להוסיף, לעדכן או למחוק נתונים, לרוב בשפת SQL.

אינדקס - למה ביצועים משתפרים
השיעור מסביר למה אינדקס מאיץ שליפה: הנתונים נשמרים במבנה עץ מאוזן, וכך מוצאים שורה בכמה קפיצות במקום לסרוק את הטבלה כולה. בשיעור מוסבר גם מתי אינדקס כדאי ומתי לא. האינדקסים תופסים מקום, ותרומתם היחידה לדאטאבייס היא ביצועים.
השלבים העיקריים
1. מבנה B-tree: העץ מורכב משורש, רמות ביניים ועלים. הנתונים נמצאים רק בעלים, והעץ מאוזן, כך שכל ערך מגיע לעלה דרך אותו מספר רמות.
2. ניווט בעץ: בכל צומת משווים את הערך לערך האמצעי. קטן ממנו הולך שמאלה, בין השניים לאמצע, וגדול הולך ימינה, עד העלה.
3. חיפוש בטבלה: סריקה מלאה בודקת את כל השורות, ואילו בעץ נדרשות כמה קפיצות בלבד, כלומר לוג של מספר השורות.
4. Clustered Index: הטבלה עצמה ממוינת לפיו, והעלים הם השורות עצמן. בכל טבלה יכול להיות אחד בלבד.
5. Non-clustered Index: מבנה נפרד, ממוין לפי העמודה, והעלים מכילים הפניה לשורה. ניתן ליצור כמה כאלה לכל טבלה, כמו מפתח בסוף ספר.
6. יוניק או לא יוניק: עמודה שערכיה אינם חוזרים, כמו תעודת זהות, מתאימה לאינדקס יוניק. שם פרטי יכול לחזור, ולכן מתאים לאינדקס רגיל.
7. איפה לחפש: תנאי WHERE, עמודות JOIN ועמודות ORDER BY הם המקומות שבהם שווה לשקול אינדקס.
8. סלקטיביות וצפיפות: סלקטיביות גבוהה, כלומר שליפה של אחוז גדול מהשורות, הופכת סריקה מלאה לזולה יותר. כלל אצבע שמוזכר בשיעור: מעל כ-10% עד 20% הדאטאבייס עשוי לבחור בסריקה. צפיפות גבוהה, כמו תעודת זהות, מתאימה לאינדקס. עמודת מגדר עם שני ערכים בלבד מתאימה פחות.
שימו לב
כל עדכון בעמודה מאונדקסת מעדכן גם את האינדקס, ולכן עמודה שמשתנה לעיתים קרובות פחות מתאימה לאינדקס. אינדקסים צורכים מקום ומחייבים עבודה בכל הכנסה ועדכון.
בסיום תוכלו להחליט מתי אינדקס ישפר שאילתה, ומתי הוא רק יעמיס על הכתיבה.
השיעור הבא בקורס: Unique

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

  1. 00:00

    אינדקסים: עלות אחסון ותועלת בביצועים

  2. 00:36

    מבנה B-Tree של האינדקס

  3. 01:14

    הדוגמה הויזואלית של טבלה על עץ

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

הטקסט המלא של הדקות הראשונות בהרצאה «אינדקס - למה ביצועים משתפרים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:01

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

  2. 00:25

    לדאטאבס הינה פרפורמנס בלבד אינדקסים נועדו על מנת לשפר ולייעל את הקריאות של הנתונים, את קריאת הנתונים, את שליפת הנתונים מתוך ה-database.

  3. 00:38

    כשאנחנו מדברים על אינדקסים אנחנו מדברים בעצם על המצב שבו הנתונים הטבלאיים שלי נשמרים במבנה הנקרא ביטרי, במבנה שבו כל הנתונים נמצאים כעץ, מקושרים זה לזה, אשר בכל הרמות בעץ החל מהרוט נוד וכלה באר הנודים עצמם, יש בעצם קישורים המובילים אותי בצורה מהירה לתוך העלים,

  4. 01:07

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

  5. 01:26

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

  6. 01:39

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

לקורס המלא: קורס SQL ו‑DBA אפליקטיבי

ההרצאה הקודמת: אינדקס - Filtered Index

ההרצאה הבאה: Unique

הרצאות קשורות מקורסים אחרים

  • בדיקות ביצועים
  • ביצועים של RAID 5 מול RAID 10
  • בדיקת ביצועים עם SQL Profiler
  • למה כדאי לעשות הסבה להייטק

קורסים נוספים במסלול

  • קורס NoSQL - MongoDB
  • קורס SSIS
  • קורס BI - ניתוח מסדי נתונים - Qlik Sense
  • קורס Power BI