שימוש ב-Index advisor

בדף הזה מוסבר על הכלי Index advisor ב-Cloud SQL ל-MySQL, ואיך אפשר לראות את ההמלצות שלו לאינדקסים ולהשתמש בהן.

ב-Cloud SQL ל-MySQL יש Index advisor מנוהל במלואו, שעוקב אחרי השאילתות שמסד הנתונים מטפל בהן באופן קבוע. הכלי Index advisor מנתח את השאילתות האלה מדי פעם כדי להמליץ על אינדקסים חדשים שיכולים לשפר את ביצועי השאילתות. הכלי Index advisor מאפשר לזהות ולתקן בעיות בביצועים של מערכות ושאילתות.

איך פועל הכלי Index advisor?

הכלי Index advisor עוזר לשפר את עיבוד השאילתות בדרכים הבאות:

  • המלצה על קבוצת אינדקסים עם פקודות SQL ליצירת אינדקסים.
  • לספק נתונים שיעזרו לכם להעריך את האינדקסים המומלצים, למשל גודל האחסון המשוער וההשפעה של האינדקסים על שאילתה.
הכלי Index advisor שומר ומציג את הפקודה CREATE INDEX שמכילה את שם מסד הנתונים, שם הטבלה ושמות העמודות. השאילתות במעקב הן כולן שאילתות מנורמלות שכל המילוליות הוסרו מהן.

ההמלצות לאינדקסים מוצפנות במנוחה.

ב-Cloud SQL ל-MySQL, אתם יכולים להשתמש בדגלים לניהול מסד הנתונים כדי להגדיר ולכוונן את הכלי Index Advisor. מידע נוסף זמין במאמר דגלים של Index advisor.

מגבלות

אלה המגבלות של הכלי Index advisor ב-Cloud SQL ל-MySQL:

  • הכלי Index advisor מספק המלצות רק ל-CREATE INDEX.
  • הכלי Index Advisor לא תומך במכונות עם ההגדרות הבאות:
    • מכונות של Cloud SQL מהדורת Enterprise
    • מכונות שמשתמשות בסוגי מכונות עם ליבה משותפת (shared-core)

לפני שמתחילים

כדי לקבל המלצות מהכלי Index Advisor, צריך להשתמש במהדורת Cloud SQL Enterprise Plus ולהפעיל את תובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus במכונה של Cloud SQL.

תפקידים והרשאות נדרשים

כדי לקבל את ההרשאות שנדרשות לקבלת המלצות מהכלי Index Advisor, בקשו מהאדמין להקצות לכם את התפקיד צפייה ב-Cloud SQL (roles/cloudsql.viewer) ב-IAM בפרויקט שמארח את המכונה ב-Cloud SQL. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות כדי לקבל המלצות מ-Index advisor. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי לקבל המלצות מהכלי Index Advisor, נדרשות ההרשאות הבאות:

  • databaseinsights.recommendations.query
  • databaseinsights.resourceRecommendations.query

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

הפעלת ההמלצות של Index advisor

כשמפעילים את Query Insights במהדורת Cloud SQL Enterprise Plus, ההמלצות של Index Advisor מופעלות באופן אוטומטי. מידע נוסף על דרישות ההפעלה מחדש זמין במאמר הפעלת תובנות לגבי שאילתות.

השבתת ההמלצות של Index advisor

אי אפשר להשבית את ההמלצות של Index Advisor בלי להשבית את Query Insights ב-Cloud SQL Enterprise Plus.

כדי להשבית את ההמלצות של Index Advisor ואת התובנות לגבי שאילתות ב-Cloud SQL Enterprise Plus, קראו את המאמר השבתת התובנות לגבי שאילתות ב-Cloud SQL Enterprise Plus.

הצגת ההמלצות של Index advisor

‫Cloud SQL מריץ באופן אוטומטי את הניתוח של Index Advisor מדי פעם. כדי לראות את ההמלצות של Index advisor, משתמשים בלוח הבקרה של Query Insights. אתם יכולים גם להציג את ההמלצות של הכלי לייעוץ בנושא אינדקסים ולשלוח שאילתות לגביהן כטבלה, או לבקש ניתוח ודוח על פי דרישה בכל שלב.

הצגה וסינון של המלצות בלוח הבקרה של Query Insights

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. לוחצים על Query insights.
  4. ההמלצות של Index Advisor מופיעות בעמודה Recommendation בקטע Top queries and tags.
  5. אופציונלי: כדי לראות רק את השאילתות עם המלצות של CREATE INDEX, מוסיפים מסנן ל-Recommendation: Create Indexes.

הצגת המלצות לשאילתה

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

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. לוחצים על Query insights.
  4. בקטע שאילתות ותגים מובילים, לוחצים על שאילתות.
  5. כדי לקבל פרטים על המלצה לשאילתה, מבצעים אחת מהפעולות הבאות:
    • לוחצים על שאילתה כדי לראות מידע נוסף על ההמלצות לשאילתה שנבחרה, כולל הפרטים הבאים:
      • ההשפעה על הביצועים (גבוהה, בינונית ונמוכה): מהירות השאילתה המשוערת אחרי שכל האינדקסים המומלצים נוצרו.
      • המלצות: יצירת המלצות לאינדקסים.
      • טבלאות שהושפעו: מספר הטבלאות שיושפעו כשהאינדקסים ייווצרו.
      • נפח אחסון משוער נוסף שנדרש: נפח האחסון המשוער שנדרש כדי ליצור את כל האינדקסים המומלצים.
      • ‫Number of impacted queries: המספר הכולל של השאילתות בעומס העבודה שהושפעו מההמלצות לאינדקסים. אינדקס יכול להועיל לכמה שאילתות.
    • לוחצים על Create Indexes בשאילתה ספציפית כדי לקבל המלצות מפורטות ליצירת אינדקסים שישפרו את ביצועי השאילתה.

הצגת ההמלצות בתצוגת טבלה של מסד נתונים

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

  • ‫mysql.cloudsql_db_advisor_recommended_indexes: רשימה של אינדקסים חדשים שמומלצים לכל מסד נתונים. הוא כולל גם הערכות של נפח האחסון שנדרש לכל אינדקס, ומספר השאילתות שכל אינדקס יכול להשפיע עליהן.

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

SELECT * FROM mysql.cloudsql_db_advisor_recommended_indexes;

יצירת אינדקסים מומלצים

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

כדי ליצור אינדקס מומלץ באמצעות לוח הבקרה של Query Insights:

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. לוחצים על Query insights.
  4. בטבלה Top dimensions by database load, לוחצים על Queries.
  5. לוחצים על Create Indexes בשאילתה ספציפית.
  6. לוחצים על העתקת כל פקודות האינדקס. הפקודות של CREATE INDEX מועתקות ללוח.
  7. מתחברים למכונה הראשית בשורת הפקודה.
  8. כדי ליצור את האינדקסים המומלצים, מריצים את הפקודות שהועתקו ללוח, לדוגמה:

    CREATE INDEX ON "public"."demo_order" ("customer_id");

העמודה index בטבלה mysql.cloudsql_db_advisor_recommended_indexes מכילה בכל שורה הצהרת DDL מלאה של MySQL CREATE INDEX ליצירת האינדקס שמומלץ באותה שורה.

כדי ליישם את ההמלצה של אותה שורה, מריצים את הצהרת ה-DDL בדיוק כמו שהיא מוצגת.

לדוגמה, נניח שזה הפלט של ניתוח ידני באמצעות השאילתה שמתוארת בקטע הקודם:

                    index                   | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
 CREATE INDEX ON "School"."Students"("age") |                            3
(1 row)

הדוח הזה מכיל המלצה אחת: הוספת אינדקס של עמודה אחת בעמודה age בטבלה Students של הסכימה School. כדי ליישם את העצה הזו, מזינים שאילתת DDL כמו שמוצג בדוח:

CREATE INDEX ON "School"."Students"("age");

הצגת השאילתות המושפעות

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. לוחצים על Query insights.
  4. בטבלה Top dimensions by database load, לוחצים על Queries.
  5. לוחצים על יצירת אינדקסים לשאילתה ספציפית.
  6. לוחצים על הצגת השאילתות המושפעות.
  7. לוחצים על שאילתה כדי לראות פרטים על השאילתה המושפעת.

הגדרת הכלי Index advisor

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

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

המאמרים הבאים