דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. אינדקסים ב SQL

אינדקסים ב SQL

מתוזמן נעוץ נעול הועבר תכנות
11 פוסטים 3 כותבים 600 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD
    dovidD
    dovid
    ניהול
    כתב ב נערך לאחרונה על ידי dovid
    #2

    בגלל שSQL זה טכנולוגיה בוגרת ועדיין רלוונטית, זה נושא שיש עליו המון חומר גם בעברית,
    אני מביא לך כמה לינקים רלוונטיים לשאלה:
    http://blogs.microsoft.co.il/gerireshef/2010/11/29/אינדקסים-וספריית-אוניברסיטת-חיפה/
    https://internet-israel.com/מדריכים/mysql-מדריכים/אופטימיזציה-בסיסית-של-mysql/
    http://www.softwarearchiblog.com/2018/08/mysql-storage-engines.html

    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
    WWWW תגובה 1 תגובה אחרונה
    4
    • dovidD dovid

      בגלל שSQL זה טכנולוגיה בוגרת ועדיין רלוונטית, זה נושא שיש עליו המון חומר גם בעברית,
      אני מביא לך כמה לינקים רלוונטיים לשאלה:
      http://blogs.microsoft.co.il/gerireshef/2010/11/29/אינדקסים-וספריית-אוניברסיטת-חיפה/
      https://internet-israel.com/מדריכים/mysql-מדריכים/אופטימיזציה-בסיסית-של-mysql/
      http://www.softwarearchiblog.com/2018/08/mysql-storage-engines.html

      WWWW
      WWWW
      WWW
      כתב ב נערך לאחרונה על ידי
      #3

      @dovid

      1. תודה רבה!

      2. הקישור הראשון זה תאוריה יותר, שכבר קראתי הרבה...
        הקישור השני זה נחמד, את רוב הכללים כבר ידעתי, אבל הוא חידש לי כמה דברים.
        הקישור השלישי נשמע לי עמוק מידי, מה גם שאני לא יודע אם זה תקף ל MSSQL.

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

      WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

      dovidD תגובה 1 תגובה אחרונה
      0
      • WWWW WWW

        @dovid

        1. תודה רבה!

        2. הקישור הראשון זה תאוריה יותר, שכבר קראתי הרבה...
          הקישור השני זה נחמד, את רוב הכללים כבר ידעתי, אבל הוא חידש לי כמה דברים.
          הקישור השלישי נשמע לי עמוק מידי, מה גם שאני לא יודע אם זה תקף ל MSSQL.

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

        dovidD
        dovidD
        dovid
        ניהול
        כתב ב נערך לאחרונה על ידי
        #4

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

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

        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
        WWWW תגובה 1 תגובה אחרונה
        1
        • dovidD dovid

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

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

          WWWW
          WWWW
          WWW
          כתב ב נערך לאחרונה על ידי WWW
          #5

          אוי @dovid מה אני אגיד לך...
          לא כולם חכמים כמוך...
          אין לי כח לעשות פה לומדות ולהבין דבר מתוך דבר, וזה לא בא לי בקלות 😞

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

          שדה תנאי התכוונתי לשדה שבד"כ מסננים לפי זה.
          ושדה מיון התכוונתי שדה שבד"כ ממיינים את התוצאות לפי השדה הזה (טקסט).

          WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

          dovidD תגובה 1 תגובה אחרונה
          0
          • WWWW WWW

            אוי @dovid מה אני אגיד לך...
            לא כולם חכמים כמוך...
            אין לי כח לעשות פה לומדות ולהבין דבר מתוך דבר, וזה לא בא לי בקלות 😞

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

            שדה תנאי התכוונתי לשדה שבד"כ מסננים לפי זה.
            ושדה מיון התכוונתי שדה שבד"כ ממיינים את התוצאות לפי השדה הזה (טקסט).

            dovidD
            dovidD
            dovid
            ניהול
            כתב ב נערך לאחרונה על ידי
            #6

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

            אני בכל אופן הרצתי חיפוש באינטרנט "sql index rule of thumb"
            אנשים מציינים את הדברים הבאים:

            • בד"כ אינדקס נותן תועלת משמעותית רק כשמתשאלים 1. אחוז קטן מהתוצאות (10% ופחות מגודל הטבלה) 2. הטבלה גדולה מאוד 3. יש שונות גבוהה בערכים המאונדקסים (למשל זכר נקבה זה שתי ערכים אז זו שונות נמוכה מאוד מאוד).
            • לא ליצור אינדקס אם לא נראית או צפויה בעיה (כלומר קודם שיהיה לאט ואז נדבר - אז גם אפשר לבדוק מייד אם הייתה התייעלות)
            • הכתיבות לטבלה וסבלים מביצועים נמוכים ככל שיש יותר אינדקסים. במיוחד יש לשקול זאת בטבלה עם ריבוי כתיבות.

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

            • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
            • בכל נושא אפשר ליצור קשר dovid@tchumim.com
            WWWW תגובה 1 תגובה אחרונה
            5
            • dovidD dovid

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

              אני בכל אופן הרצתי חיפוש באינטרנט "sql index rule of thumb"
              אנשים מציינים את הדברים הבאים:

              • בד"כ אינדקס נותן תועלת משמעותית רק כשמתשאלים 1. אחוז קטן מהתוצאות (10% ופחות מגודל הטבלה) 2. הטבלה גדולה מאוד 3. יש שונות גבוהה בערכים המאונדקסים (למשל זכר נקבה זה שתי ערכים אז זו שונות נמוכה מאוד מאוד).
              • לא ליצור אינדקס אם לא נראית או צפויה בעיה (כלומר קודם שיהיה לאט ואז נדבר - אז גם אפשר לבדוק מייד אם הייתה התייעלות)
              • הכתיבות לטבלה וסבלים מביצועים נמוכים ככל שיש יותר אינדקסים. במיוחד יש לשקול זאת בטבלה עם ריבוי כתיבות.

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

              WWWW
              WWWW
              WWW
              כתב ב נערך לאחרונה על ידי
              #7

              @dovid תודה רבה, לזה חיכיתי!

              כעת לשאלה שלי:

              • יש לי טבלה שאמורה להיות כבדה, נגיד 50,000 רשומות, ועיקר האפליקציה זה קריאה מהטבלה הזאת.
                יש בטבלה כ 15 שדות.
              • עדכון לטבלה מתבצע רק ע"י המנהל, וזה בד"כ בעיקר הוספה של הרבה רשומות בבת אחת (ע"י סקריפט שמכניס אחד אחרי השני לאחר בדיקה).
              • כמעט תמיד השאילתא תריץ תנאי ששדה 'א' (INT) שווה X. וזה אמור לשלוף כ 3000 רשומות בתנאי הזה (לרוב השאילתה מוגבלת ל TOP 100 רשימות, אבל הבנתי שזה לא עוזר כלום).
              • לרוב המיון יהיה לפי ביטוי מורכב (זו שאלה בפנ"ע אם זה כדאי) שזה ['שם משפחה' + ' ' + 'שם פרטי'].
              • אני נותן אופציה ללקוח למיין לפי כל שדה בטבלה, וכן לסנן לפי כל שדה כולל סינון מקונן (בד"כ הסינון 'שווה').
              • בינתיים אין אינדקסים (חוץ ממפתח ראשי) ואני לא רואה איטיות (יש כ3000 רשומות כרגע בטבלה).

              מה היית ממליץ לעשות?

              WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

              clickoneC תגובה 1 תגובה אחרונה
              0
              • WWWW WWW

                @dovid תודה רבה, לזה חיכיתי!

                כעת לשאלה שלי:

                • יש לי טבלה שאמורה להיות כבדה, נגיד 50,000 רשומות, ועיקר האפליקציה זה קריאה מהטבלה הזאת.
                  יש בטבלה כ 15 שדות.
                • עדכון לטבלה מתבצע רק ע"י המנהל, וזה בד"כ בעיקר הוספה של הרבה רשומות בבת אחת (ע"י סקריפט שמכניס אחד אחרי השני לאחר בדיקה).
                • כמעט תמיד השאילתא תריץ תנאי ששדה 'א' (INT) שווה X. וזה אמור לשלוף כ 3000 רשומות בתנאי הזה (לרוב השאילתה מוגבלת ל TOP 100 רשימות, אבל הבנתי שזה לא עוזר כלום).
                • לרוב המיון יהיה לפי ביטוי מורכב (זו שאלה בפנ"ע אם זה כדאי) שזה ['שם משפחה' + ' ' + 'שם פרטי'].
                • אני נותן אופציה ללקוח למיין לפי כל שדה בטבלה, וכן לסנן לפי כל שדה כולל סינון מקונן (בד"כ הסינון 'שווה').
                • בינתיים אין אינדקסים (חוץ ממפתח ראשי) ואני לא רואה איטיות (יש כ3000 רשומות כרגע בטבלה).

                מה היית ממליץ לעשות?

                clickoneC
                clickoneC
                clickone
                כתב ב נערך לאחרונה על ידי
                #8

                @WWW ב3000 אתה לא אמור להיות באיטיות

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

                אין טסט כמו פרודקשן.

                המייל שלי urivpn@gmail.com

                WWWW תגובה 1 תגובה אחרונה
                1
                • clickoneC clickone

                  @WWW ב3000 אתה לא אמור להיות באיטיות

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

                  WWWW
                  WWWW
                  WWW
                  כתב ב נערך לאחרונה על ידי
                  #9

                  @clickone אמר באינדקסים ב SQL:

                  אם הצפי ל30 או 300 אלף רחוק אז לגמרי הייתי ממתין
                  אם הוא ממש קרוב אז שווה לחשוב על זה כבר עכשיו

                  כפי שכתבתי הטבלה אמורה לגדול עד ל 50,000 נגיד.

                  WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                  dovidD תגובה 1 תגובה אחרונה
                  0
                  • WWWW WWW

                    @clickone אמר באינדקסים ב SQL:

                    אם הצפי ל30 או 300 אלף רחוק אז לגמרי הייתי ממתין
                    אם הוא ממש קרוב אז שווה לחשוב על זה כבר עכשיו

                    כפי שכתבתי הטבלה אמורה לגדול עד ל 50,000 נגיד.

                    dovidD
                    dovidD
                    dovid
                    ניהול
                    כתב ב נערך לאחרונה על ידי dovid
                    #10

                    @WWW עדיף שתשתף אותנו כשזה כבר יהיה מספיק גדול למדידות (נגיד ב10K).
                    אין לך מה להפסיד מלחכות כי אינדקסים זה שקוף לגמרי מבחינת התנהגות המסד והתוכנה שלך.

                    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                    WWWW תגובה 1 תגובה אחרונה
                    2
                    • dovidD dovid

                      @WWW עדיף שתשתף אותנו כשזה כבר יהיה מספיק גדול למדידות (נגיד ב10K).
                      אין לך מה להפסיד מלחכות כי אינדקסים זה שקוף לגמרי מבחינת התנהגות המסד והתוכנה שלך.

                      WWWW
                      WWWW
                      WWW
                      כתב ב נערך לאחרונה על ידי
                      #11

                      @dovid אמר באינדקסים ב SQL:

                      @WWW עדיף שתשתף אותנו כשזה כבר יהיה מספיק גדול למדידות (נגיד ב10K).

                      זה יקח כמה שנים 🙂

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

                      לא הבנתי.

                      WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                      תגובה 1 תגובה אחרונה
                      0

                      שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

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

                      בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

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


                      בא תתחבר לדף היומי!
                      • התחברות

                      • אין לך חשבון עדיין? הרשמה

                      • התחברו או הירשמו כדי לחפש.
                      • פוסט ראשון
                        פוסט אחרון
                      0
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום