אינדקסים (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;
-- קופץ ישר לתוצאות
בדקו את עצמכם
נסו לענות לבד לפני שאתם פותחים את התשובה.
-
מה אינדקס משפר?
הצגת התשובה
תשובה ד. כמו אינדקס בספר: מוצאים בלי לעבור על כל הדפים.
-
מה המחיר של אינדקס?
הצגת התשובה
תשובה ד. לכן מוסיפים אינדקסים לעמודות שבאמת מחפשים לפיהן.