אינדקסים (Indexes)

מה זה אינדקס?

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

ללא אינדקס: סורק את כל הטבלה (100,000 שורות)
עם אינדקס: קפיצה ישירה לנתונים הרלוונטיים

יצירת אינדקס

-- אינדקס בסיסי
CREATE INDEX idx_email ON users(email);

-- אינדקס ייחודי
CREATE UNIQUE INDEX idx_username ON users(username);

-- אינדקס על מספר עמודות
CREATE INDEX idx_name_age ON users(name, age);

סוגי אינדקסים

סוג שימוש
INDEX אינדקס רגיל
UNIQUE INDEX ערכים ייחודיים
PRIMARY KEY מפתח ראשי (אינדקס אוטומטי)
FULLTEXT חיפוש טקסט מלא

מתי להשתמש באינדקס?

✅ כדאי:

  • עמודות ב-WHERE
  • עמודות ב-JOIN
  • עמודות ב-ORDER BY
  • עמודות עם ערכים ייחודיים

❌ לא כדאי:

  • טבלאות קטנות
  • עמודות שמשתנות הרבה
  • עמודות עם מעט ערכים שונים

ניהול אינדקסים

-- הצגת אינדקסים
SHOW INDEX FROM users;

-- מחיקת אינדקס
DROP INDEX idx_email ON users;

-- בדיקת ביצועים
EXPLAIN SELECT * FROM users WHERE email = '[email protected]';

דוגמה מעשית

-- לפני: שאילתה איטית
SELECT * FROM orders WHERE user_id = 5;
-- סורק 1,000,000 שורות

-- יצירת אינדקס
CREATE INDEX idx_user_id ON orders(user_id);

-- אחרי: שאילתה מהירה
SELECT * FROM orders WHERE user_id = 5;
-- קופץ ישר לתוצאות

← טרנזקציות | המשך ל-Views →

בדקו את עצמכם

נסו לענות לבד לפני שאתם פותחים את התשובה.

  1. מה אינדקס משפר?

    1. את האבטחה
    2. את מהירות הכתיבה
    3. את גודל הטבלה
    4. את מהירות החיפוש והמיון לפי העמודה
    הצגת התשובה

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

  2. מה המחיר של אינדקס?

    1. אין מחיר
    2. הוא מוחק נתונים
    3. הוא עולה כסף
    4. מקום בדיסק, ו-INSERT ו-UPDATE קצת איטיים יותר
    הצגת התשובה

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