PracticU

הוספת אינדקס ב-SQL

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

הוספת אינדקס ב-SQL
חיפוש לפי עמודה בטבלה עצומה יכול להיות איטי. ההרצאה מסבירה מה זה אינדקס, איך מוסיפים אותו ומתי לא כדאי.
איך זה עובד
1. הבעיה: כשמחפשים לפי אימייל, למשל, הדאטאבייס עובר רשומה אחרי רשומה. במיליוני רשומות זה איטי.
2. הרעיון: מידע ממוין אפשר לחפש בחיפוש בינארי, שמחלק את הכמות לחצי שוב ושוב. הדאטאבייס לא ממיין את הטבלה עצמה. הוא מעתיק את העמודה למקום אחר, ממיין שם, מחפש בו ומצביע בחזרה על הרשומה האמיתית. זה האינדקס.
3. יצירה: בדיזיינר של הטבלה נכנסים ל-Manage Indexes and Keys, מוסיפים אינדקס על עמודת האימייל, ובשדה Is Unique בוחרים No. סוג האינדקס הוא Index. אחרי שמירה האינדקס נוצר מאחורי הקלעים, וחיפושים לפי אימייל יהיו מהירים יותר.
שימו לב
- אינדקס מאט הוספה, עדכון ומחיקה, כי כל שינוי מתעדכן גם בעותק הממוין.
- לא שמים אינדקס על כל עמודה. יותר מדי אינדקסים מאטים את הפעולות האלה.
- מוסיפים אינדקס רק על עמודה שמחפשים לפיה הרבה, כשהחיפושים אכן איטיים על כמות גדולה של מידע. אם אין צורך, לא עושים.
אחרי ההרצאה תוכלו להחליט מתי כדאי להוסיף אינדקס ולהגדיר אחד בדיזיינר.
השיעור הבא בקורס: ייצוא וייבוא מסד נתונים ב-SQL

פרקי ההרצאה: הוספת אינדקס ב-SQL

  1. 00:00

    לפי מה מחפשים מידע

  2. 00:37

    חיפוש איטי בכמות גדולה

  3. 01:14

    חיפוש בינארי על מידע ממוין

  4. 01:51

    מהו אינדקס

  5. 02:29

    יצירת אינדקס בדיזיינר

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

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

  1. 00:02

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

  2. 00:21

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

  3. 00:32

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

  4. 00:46

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

  5. 01:11

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

  6. 01:31

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

  7. 01:45

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

  8. 02:08

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

  9. 02:25

    אם הוא מצא, הוא יודע בדיוק איזה רשומה הוא. איך אנחנו יוצרים אינדקס? בואו ניגש לאזור של הדיזיינר ויש לנו כאן שוב פעם Manage Indexes and Keys.

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

ההרצאה הקודמת: מזהה ייחודי - SQL GUID

ההרצאה הבאה: ייצוא וייבוא מסד נתונים ב-SQL

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

  • הוספת VMkernel
  • LINQ ל- SQL
  • התקנה של SQL
  • הוספת Request לטסט

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

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