מה הדרך החסכונית ביותר להציג רשומות (כבר עם חלוקה)? - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

מה הדרך החסכונית ביותר להציג רשומות (כבר עם חלוקה)?


CentralEruption

Recommended Posts

שלום,

יש לי דף המציג רשומות מטבלה בעלת 1500 רשומות במסד הנתונים. אמנם הדף מחלק את הצגת הרשומות לתת- עמודים (יש שימוש ב-limit), אני לא מצליח להקטין את תפיסת התעבורה שלו!

ככה נראה משפט ה-SQL:

$limit1 = ($PageNum - 1) * $NumOfRecInPage;

$limit2 = $NumOfRecInPage;

$sql=mysql_query("select {FIELDS} from {TABLE} limit $limit1, $limit2");

while ($record = mysql_fetch_array($sql))

{FIELDS_DISPLAY}

ניסיתי:

- להקטין את מספר הרשומות המוצגות בדף.

- להשמיט שדות מהתצוגה (וממשפט ה-SQL מן הסתם).

- לראות מה עשו ב-phpBB (רק אני לא מבין 85% ממה שכתוב שם?!).

- לשאול עמיתים העובדים בשפות אחרות (ASP לדוגמא).

את הדף אתם יכולים לראות בכתובת:

www.subscenter.com/subs/list.php?lang=HEB

שום דבר לא מצליח! האתר שלי, עם 4000 איש ביום מנצל כ-20 ג'יגה בייט תעבורה בחודש! רק לשם השוואה, האתר BlaBla4U*, עם 100,000 כניסות ביום מנצל 10GB בחודש!

אני מיואש :-( מישהו יכול לעזור לי?

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

* חבר של אבי הוא הבעלים, אז אני יודע. ועוד הם עובדים עם ASP שידוע שפחות חסכונית לרוב.

קישור לתוכן
שתף באתרים אחרים

כשהחברה המארחת מודדת תעבורה, זה בדר"כ בין הווב סרבר לרשת, לא בין הווב-סרסר לDB סרבר, כך שאני לא מבין למה אתה חושב שמשפט הSQL אחראי לתעבורה.

אם זה לא המקרה, ואתה צודק, יכול להיות שהמימוש של Paging במשפט הSQL הבא הוא לא יעיל. אני לא מבין בSQL ספציפי של Mysql, אבל יכול להיות שבמקום למשוך רק את הרשומות שאתה מבקש (למשל בין 30 ל40), בסיס הנתונים מוסר לווס-סרבר את כל הרשומות בין 1-40, והאחרון עובר רק על אלו שמעניינים אותו (30-40 כאמור). דבר כזה קורה למשל בADO. שוב, יכול להיות שאני טועה, אני לא יודע איך בדיוק מתבצע paging בעזרת מילת המפתח limit.

קישור לתוכן
שתף באתרים אחרים

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

אני לא מאמין שמשהו אחר בעמוד יכול לתפוס הרבה תעבורה... מה לדעתך יכול?

קישור לתוכן
שתף באתרים אחרים

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

אני לא מאמין שמשהו אחר בעמוד יכול לתפוס הרבה תעבורה... מה לדעתך יכול?

בו נגיד שאני מושך RS של 10000 רשומות.

ויוצר דף HTML שמציג 20 רשומות.

אז אתה טוען שמה שנימדד זאת תעבורת הנתונים בין ה DB ל SERVER ?

אני חושב שאתה טועה.

הCLIENT מקבל קובץ קטן ...

וזה מה שתופס את רוחב הפס.

והדף שמופיע בקישור גודלו 12K .. מה הבעייה ?

קישור לתוכן
שתף באתרים אחרים

תודה על הקישורים (לא בדיוק עזר, אבל בכל זאת)...

לגבי bilbo, הדפים של phpBB לדוגמא, הם באורך עצום, שלא נדבר שהגודל שלהם הוא בעצמו לא קטן. איך תסביר שהם תופסים מעט תעבורה?

לדעתי הם פשוט ידעו לחסוך בקישורים שלהם למסד...

קישור לתוכן
שתף באתרים אחרים

תודה על הקישורים (לא בדיוק עזר, אבל בכל זאת)...

לגבי bilbo, הדפים של phpBB לדוגמא, הם באורך עצום, שלא נדבר שהגודל שלהם הוא בעצמו לא קטן. איך תסביר שהם תופסים מעט תעבורה?

לדעתי הם פשוט ידעו לחסוך בקישורים שלהם למסד...

אני לא ממש מצליח לרדת לסוף דעתך.

אני לא מכיר phpBB בכלל, אבל אני מתכנת ASP ו .NET לא מעט זמן (4 שנים).

לפי ההיגיון שלי תעבורת נתונים היא בין השרת והלקוח . . . .

אם ה DB יושב במקום אחר אז הוא תופס רוחב פס, אבל זה לא ניראה לי הגיוני, האם זה המצב?

במצב נורמלי יש SQL SERVER ו IIS.

כל גישה ל DB לוקחת משאבים אבל זאת תעבורה פנימית של נתונים.

ושוב אם אני מביא מיליון רשומות(נעזוב את חוסר היעילות) ולא כותב לדף כלום, ובסוף שולח לקליינט דף בגודל 1K

מה ירשם בתור תעבורה? המיליון רשומות שניזרקו לפח?

או

הדף שהמשיך לקליינט בגודל 1K ?

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...