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

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

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

מסד נתונים: mongoDb או MySql או אחר

מתוזמן נעוץ נעול הועבר תכנות
6 פוסטים 4 כותבים 298 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • A מנותק
    A מנותק
    avi rz
    כתב ב נערך לאחרונה על ידי
    #1

    בס"ד

    המדריכים בד"כ משתמשים במונגו זה נראה מצד הקלילות שבו, בפרט עם השימוש ב mongooes שהופך אותו ליותר נגיש ועושה קצת סדר במבנה הטבלאות (מצד החסרון של מונגו, בסדר העמודות בטבלאות).
    האם באמת נכון שלפעמים יכול להיות מהיר יותר מsql פי כמה, בגלל שזה חוסך את ההמרה של הג'סונים שצריך לעשות בSQL בגלל שכולו מובנה על ג'סון.
    ומצד שני עושה רושם שיש עדיפות למסד נתונים של SQL, מעניין מה הוא? ואם באמת חשוב?

    בינתיים אני השתמשתי, בphpMyAdmin אבל פתאום אני חושב, שזה מאבד לי חלק מהמהירות של נוד, כי אם אני בכל בקשה למסד נתונים ממשיך את הקוד בcallback זאת אומרת שהקוד תלוי הרבה בPHP,
    אולי באמת עדיף להשתמש בSql אחר, כגון Sqlite,
    אשמח לישמוע עוד צדדים בנושא ובעיקר הכרעות - עדיף מנסיון, ולא רק תיאורטי.

    dovidD תגובה 1 תגובה אחרונה
    2
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      השיב לavi rz ב נערך לאחרונה על ידי dovid
      #2

      @avi-rz השאלה שלך כוללת הנחות שגויות.
      MySql אינו קשור או תלוי לphpMyAdmin.
      (phpMyAdmin זה סה"כ קליינט - כלי חמוד לצפות בנתונים, ולהריץ שאילתות וכדומה).
      MySql לא מבוסס על PHP, והוא גם מודרני ומהיר (לא פחות מנוד) עד כמה שזה מתאפשר.

      mongo אכן יותר מהר בלי קשר לjson מסיבה פשוטה: אם אתה בתור באיזה קיוסק ואתה מבקש את החומרים של טוסט תקבל אותם מיידית. אך אם תבקש טוסט תתבקש להמתין.
      בעוד mysql בנוי באופן שהרבה לוגיקה של אופי הנתונים באחריותו, ולעומת זאת מונגו בבסיסו לא מתערב בכך (בשניהם זה ממש לא מדוייק, בהתאם לשימושים ולשכלולים שיש בהם כיום לשני הצדדים - מונגו היום יכול היום להיות מאוד מתערב אבל עדיין פחות מmysql. לעומת זאת mysql לא יכול להיות "גולמי", הוא בנוי להיות "מבוגר אחראי" ויש לזה מחיר).
      אם אחרי שהנתונים אצלך ביד או לפני שאתה מכניס אותם, אתה עושה כל מיני בדיקות והתאמות וותיקופים, אתה מוצא את עצמך עושה את העבודה שmysql עושה. לפעמים זה שווה, בגלל שיש חלק משמעותי של פעולות בהם לא נדרשת שום לוגיקה, אלא רק שליפה וכדומה.

      sqlLite זה מסד נתונים מוטמע, כלומר במקום שיש את האפליקציה שלך ולצידה תוכנה אחרת של מונגו או של mysql אז האפליקציה שלך עצמה אחראית לגמרי על ניהול הנתונים (ספריה של sqlite דואגת לזה, אבל זה בעצם התהליך שלך מריץ הכל).
      יש לזה רק חסרונות מבחינת ביצועים, המעלה של זה היא ניידות ועצמאיות (לא צריך להגדיר כלום בשרת אליו אתה מעביר את האפליקציה). זה נח מאוד לאפליקציות רזות ו/או שצריכות לפעול על סביבה של מחשבים לא "שרתיים". לשם דוגמה תוכנת דסקטופ שמפיצים והיא צריכה מסד משתמשת במסד הזה - כמו גוגל כרום.

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      nigunN תגובה 1 תגובה אחרונה
      12
      • nigunN מנותק
        nigunN מנותק
        nigun
        השיב לdovid ב נערך לאחרונה על ידי
        #3

        @dovid
        אם כבר מדברים על מונגו
        מה ההבדל בינו לבין key-value database?
        אני יודע שיש לו יותר אפשרויות של חיפוש
        אני מתכוון למאחורי הקלעים איך הוא מאחסן את המידע.

        מייל: nigun@duck.com

        dovidD תגובה 1 תגובה אחרונה
        0
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          השיב לnigun ב נערך לאחרונה על ידי
          #4

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

          @nigun בלי "אם כבר". פתח נושא מפואר לצורך השאלה הזאת הלא פחות חשובה.

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          A תגובה 1 תגובה אחרונה
          9
          • A מנותק
            A מנותק
            avi rz
            השיב לdovid ב נערך לאחרונה על ידי avi rz
            #5

            @dovid
            תודה רבה, על התשובה המפורטת.

            @dovid אמר במסד נתונים: mongoDb או MySql או אחר:

            MySql לא מבוסס על PHP,

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

            @dovid אמר במסד נתונים: mongoDb או MySql או אחר:

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

            כלפי מה הדברים אמורים? האם הSchemas לא אמורה למלאות את החסר הזה,
            ובכלל גם במונגו וגם בmySql יש את הSchemas במונגו ואת הSequelize בmySql
            שבעצם מה שנשאר זה לבנות את הקלאסים,עם הTypes של כל שדה, והם כבר מייצרים את הטבלאות,

            @dovid אמר במסד נתונים: mongoDb או MySql או אחר:

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

            אז בעצם ההבדל הוא שעובדים עם מסד נתונים של SQL שאז אכן זוכים לכל המעלות הנ"ל, ובאיזה סוג זה עדיין משנה? (קריטי /לא קריטי /בכלל לא /קשור לצרכים)?

            מנצפךמ תגובה 1 תגובה אחרונה
            0
            • מנצפךמ מנותק
              מנצפךמ מנותק
              מנצפך
              השיב לavi rz ב נערך לאחרונה על ידי
              #6

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

              בעולם של NoSql, המבנה של מערכת כזאת היא (באופן עקרוני) שלכל לקוח יש אובייקט גדול שמכיל את כל הפרטים הנ"ל.
              בעולם של SQL יש שימוש קבוע בטבלאות חיבורים.
              כך שלא נכתוב אצל הלקוח מה שם העיר שהוא גר בה, אלא מה המזהה של העיר בטבלת הערים.
              וכך ברשימת המוצרים וכו.
              יש שימוש נרחב בקשרי many to many ו many to one
              בעולם של noSql, באופן עקרוני זה לא אמור לעבוד בצורה של join-ים.

              יש על זה המון חומר ברשת.

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

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

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

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