Lonjie 10.09.2216:34

מבחינת ביצועים, מה עדיף לטעון מידע מ- DB או מ- JSON?

היי חברים,
שאלה, לדוגמא יש אתר ecommerce עם 10000 מוצרים,
מבחינת ביצועים, איך טעינת המידע של המוצרים עדיפה, מתוך DB או מקבצי JSON?

תודה רבה.
dj_boy 10.09.2217:59
1. טעינה לתוך מה? בתגובה להודעה מספר 0
כעיקרון כמה שפחות IO יותר טוב
אבל זה מאוד תלוי בצרכים המדויקים שלך
Lonjie 10.09.2218:40
2. טעינת המידע לתוך העמוד. בתגובה להודעה מספר 1
קריאה מתוך DB, או קריאה מתוך קבצי JSON



@dj_boy@
dj_boy 10.09.2222:04
5. שתף קצת יותר על המערכת בתגובה להודעה מספר 2
לא נתת מספיק מידע בשביל לקבל תשובה יעילה
סביר להניח ש־DB זה הדבר היחיד ההגיוני, אבל... זה תלוי מה בדיוק את עושה ואיך.
Lonjie 11.09.2210:53
7. בגדול מדובר ב- 2 אתרים, בתגובה להודעה מספר 5
2 אתרים המבוססים וורדפרס,
אחד מהם הוא Scarper שקורא מידע ממקור חיצוני, מעבד, ואז דוחף לאתר הראשי.

האתר הראשי אמור להיות רזה ולהכיל רק את המידע על המוצרים בתצורת DB או JSON.
וורדפרס בכללי עובדת עם MySQL.

אז סתם עניין אותי, אולי שווה להחליף את העבודה עם MySQL עם קבצי JSON.



@dj_boy@
dj_boy 11.09.2215:28
9. JSON מיועד לשלב ההעברה ולא לשלב השימוש בתגובה להודעה מספר 7
DB מיועד לשלב השימוש במידע.
ציינת שאתה על וורדפרס ככה שבזיליון אחוז לא תרוויח דבר משמירה של מידע כזה ב־JSON
Lonjie 12.09.2210:39
12. אוקי, קיבלתי, מעולה. בתגובה להודעה מספר 9




@dj_boy@
Along1 10.09.2219:11
3. DB....... תחקור קצת כדי להבין את ההבדלים והשימושים. בתגובה להודעה מספר 0
Mr Andersson 10.09.2219:17
4. במידה ומדובר באתר סטנדרטי שהמוצרים בו דינאמיים - אין ספק שעדיף DB בתגובה להודעה מספר 0
Lonjie 12.09.2210:37
10. המוצרים כן השתנו (יותר נכון התוכן בהם), לא יודע עדיין באיזו תדירות. בתגובה להודעה מספר 4




@Mr Andersson@
Bar 11.09.2207:41
6. כמו שאמרו, בכללי עדיף DB לדברים כאלו. בתגובה להודעה מספר 0
סיבה מובהקת:
בשביל לקרוא שדה מתוך JSON, צריך לטעון את כל הJSON במלואו מהדיסק לתוך הזיכרון, בעוד שבDB אתה מבצע שאילתא ספציפית עבור הערכים שאתה צריך, והקריאה של הערך מהדיסק קצרה יותר.

נשלח ע"י הסלולרי
sza 11.09.2214:54
8. +1 נוסיף את עניין אינדוקס המידע ומהירות השליפה לעומת איטרציה על כל האובייקטים בתגובה להודעה מספר 6



צחי.




Lonjie 12.09.2210:38
11. מקבל בתגובה להודעה מספר 8
@Bar@
@sza@
Lonjie 12.09.2210:41
13. שאלה נוספת חברים, איך עדיף לנהל את הכניסה למוצרים, בתגובה להודעה מספר 0
ברגע שהלקוח הסופי נכנס למוצר רק אז לעשות קריאת API לשרת חיצוני,
או ברגע שהלקוח הסופי נכנס למוצר אז עושים קריאת DB לשרת שלי. (והקריאות ל- API החיצוני מתבצעות עם CronJob חיצוני על מנת ל"שאוב" את המידע)

בדרך הראשונה, אני בעצם לא שומר הרבה מידע על השרת שלי
בדרך השני, המידע נשמר אצלי ואז כמובן ה- DB יהיה בהתאם.

אשמח לשמוע את דעתכם בנושא.
dj_boy 12.09.2212:19
14. תלוי חחה בתגובה להודעה מספר 13
כעיקרון כמה שפחות לקרא מה־API יותר טוב
אם אתה יודע מה ה"תוקף" של המידע המתקבל מה־API
אז אתה צריך לקרא מה־API רק כשהתוקף עבר
אם לא, אם המידע לא יכול להיות שגוי בשופ"א אז אתה צריך לעשות בכל פעם קריאה
אם המידע יכול להיות "ישן" תעשה קריאה ל־API רק אם עבר חמש דקות (או כל פרק זמן הגיוני אחר עבורך) מאז הקריאה הקודמת

בעיקרון הקונספט הזה נקרא מטמון
תקרא על זה קצת api caching
sza 12.09.2216:48
15. קח בחשבון שקריאה מDB תהיה מהירה בהרבה מאשר קריאת http מהשרת החוצה בתגובה להודעה מספר 13

ותחשוב שאם נכנסים עומס של משתמשים לדף מסויים, השרת שלך יבצע הרבה קריאות http החוצה.
רוב הסיכויים שבשביל חווית משתמש נורמאלית עדיף לך לשלוף את המידע ולהשאיר אותו על db לוקאלי (ברשת לוקאלית של השרת או על השרת עצמו ממש). ככה הכניסה לדף תהיה מהירה בהרבה עבור המשתמש.


צחי.




דוקטור חייק 14.09.2220:45
16. אני לא רואה כל כך את ההבדל בתגובה להודעה מספר 15

ערכתי לאחרונה בתאריך 14.09.22 בשעה 20:48 בברכה, דוקטור חייק

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

אני הבנתי (ואולי לא הבנתי טוב) שהוא שואל לגבי שלב הכניסה לעמוד של מוצר - האם המידע ישלף מהשרת שלו (מה- DB שלו) או ישירות מהספק החיצוני.

במקרה הזה, במידה ומדובר ב- SINGLE PAGE APPLICATION,
אז יהיה פניית http החוצה בשני האפשרויות, וחווית המשתמש צריכה להיות פחות או יותר זהה.
מבחינה ה- BACK או שהוא יפנה לשרת שלו, או של הספק החיצוני (או לשרת שלו שיהווה middleware לשרת החיצוני, אני לא רואה את כל התמונה אז אני לא יודע)

בכל אופן לא הבנתי כל כך את הסיטואציה,
אבל לא נראה לי שיהיה הבדל בין 2 הפתרונות, למה לדעתך DB לוקאלי יהיה יותר מהיר ? אולי השרת של הספק החיצוני יותר מהיר מהשרת שלו ?

kickass 31.10.2203:24
17. DB ואם אתה ממש ממש מודאג ממהירות בתגובה להודעה מספר 0
יכול להשתמש בMemcache על מנת לשמור בזכרון מידע. זה יעזור אם יש מוצרים יותר פופולריים ויחסוך טעינה מהדאטאבייס. אבל עם חומרה טובה ואינדקסים נכונים לא אמורה להיות לך בעיה בכלל
העבר לפורום אחר
העבר לפורום:
סיבה:
תגובה חדשה
כותרת:
תוכן:
סמיילים:
הצג
עריכת אשכול
כותרת:
תוכן:
סמיילים:
הצג