הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה עם כניסות לפי IP (https://hosts.co.il/forums/showthread.php?t=37152)

sUP 31-12-06 23:03

בעיה עם כניסות לפי IP
 
אהלן :P
שמעו יש לי בעיה קטנה עם כניסות לפי IP

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

אז יש איזה רעיון להוריד את העומס או משו?

תודה8-*

Alter 31-12-06 23:04

אם כבר הIP נכנס אז תעדכן אותו במקום להוסיף שורה?

ושיהיו לך כמה אלפים יחודיים ביום תבוא לביקור במסנג'ר =)

sUP 31-12-06 23:27

ציטוט:

נכתב במקור על ידי Alter (פרסם 398211)
אם כבר הIP נכנס אז תעדכן אותו במקום להוסיף שורה?

ושיהיו לך כמה אלפים יחודיים ביום תבוא לביקור במסנג'ר =)

אם כבר יש ת IP במסד אז משום מה לא תתווסף שורה חדשה

אבל שוב בוא ניקח מצב שיש אלף גולשים ייחודיים ביום באתר מסויים
(לאו דווקא שלי, בוא נניח של לקוח שלי..)

אז מה אני עושה?

אני פשוט חושב על סיטואציות ורוצה לבנות תמערכת בצורה הכי יעילה

THEtop 31-12-06 23:29

דבר ראשון זה לא בושה לעשות שימוש בקובץ TXT.
אם אתה מתעקש על מסד אתה פשוט מוסיף לו משפט תנאי, שבמידה וכבר קיים IP כזה במסד הנתונים (אם הIP של הגולש שניכנס מתאים לאחד מרישומי הIP שבמסד) אם כן, אל תוסיף שורה חדשה \ נוספת, אחרת, תוסיף שורה חדשה עם הIP.

sUP 01-01-07 00:00

ציטוט:

נכתב במקור על ידי THEtop (פרסם 398229)
דבר ראשון זה לא בושה לעשות שימוש בקובץ TXT.
אם אתה מתעקש על מסד אתה פשוט מוסיף לו משפט תנאי, שבמידה וכבר קיים IP כזה במסד הנתונים (אם הIP של הגולש שניכנס מתאים לאחד מרישומי הIP שבמסד) אם כן, אל תוסיף שורה חדשה \ נוספת, אחרת, תוסיף שורה חדשה עם הIP.

לא מתעקש על מסד
לא חשבתי על TXT מקודם חח

יותר יעיל בעניין הזה ממסד לא?

תודה8-)

psycho 01-01-07 12:02

למה נראה לך שעבודה מול קבצי TXT היא פחות מעמיסה מעבודה מול מסד?

* קבל IP למשתנה $IP
* שלח שאילתה האם $IP קיים במסד
* אם כן אזי:
* עדכן את הרשומה של ה $IP ושנה את `times` ל `times`+1
* אחרת
* הכנס רשומה חדשה הכוללת את $IP

מה הבעיה?
ואם תרצה להגזים.. תוכל ליצור קוקי, אם הקוקי קיים.. כלומר הוא ביקר באתר ואין צורך להוסיף אותו
(אבל תזכור ישש מחשבים עם רשת.)

sUP 01-01-07 14:18

ציטוט:

נכתב במקור על ידי psycho (פרסם 398326)
למה נראה לך שעבודה מול קבצי TXT היא פחות מעמיסה מעבודה מול מסד?

* קבל IP למשתנה $IP
* שלח שאילתה האם $IP קיים במסד
* אם כן אזי:
* עדכן את הרשומה של ה $IP ושנה את `times` ל `times`+1
* אחרת
* הכנס רשומה חדשה הכוללת את $IP

מה הבעיה?
ואם תרצה להגזים.. תוכל ליצור קוקי, אם הקוקי קיים.. כלומר הוא ביקר באתר ואין צורך להוסיף אותו
(אבל תזכור ישש מחשבים ם רשת.)

זה מה שאני מתכנן לעשות, אבל אז חשבתי "זה לא יעמיס על המסד אם יהיו הרבה כניסות ביום?"

כאילו.. טוב עזבו חח
אני יעשה את זה וזהו.. לא הבנתם אותי

LosNir 01-01-07 15:04

לא חייב לאכסן במסד התונים, אפשר לאכסן בקובץ טקסט.
להשתמש ב fopen ו fwrite,
ובשביל לדעת כמה IP יש אפשר לעשות explode ואז count.

לדוגמא:
אסור לתת קודים

sUP 01-01-07 15:26

ציטוט:

נכתב במקור על ידי LosNir (פרסם 398409)
לא חייב לאכסן במסד התונים, אפשר לאכסן בקובץ טקסט.
להשתמש ב fopen ו fwrite,
ובשביל לדעת כמה IP יש אפשר לעשות explode ואז count.

לדוגמא:
אסור לתת קודים

ראית תתגובה של THEtop?
יופי חח כי זה מה שהוא אמר

אבל גיא עכשיו אמר שעבודה מול DB יותר יעילה ופחות מעמיסה|:

בע סיבכתם

LosNir 01-01-07 15:39

לא ראיתי את התגובות, זה קפץ ישר לסוף העמוד :P
וד"א הוא לא אמר שזה יותר יעיל.. הוא פשוט אמר שעבודה בקבצי טקסט לא פחות מעמיסה.

RS324 01-01-07 18:54

אז שתדע..עבודה עם קבצים יותר מעמיסה והסיבה :
בשביל לפתוח קובץ הוא צריך לטעון את כולו לזיכרון של המחשב..
בעת הפתיחה, לשמור עותק שלו.להביא את ה POINTER לסוף הקובץ, להוסיף
את מה שהמשתמש רוצה ואז לשמור מחדש...

יותר יעיל ? ממש ממש לא.

לגבי הזה.... יש לך דרך אפילו יותר פשוטה,
שאולי תחסוך לך כמה שאילתות

קודם כל תעשה
UPDATE userip WHERE ip=$IP SET lastvisit=$time
(סתם דוגמא)
ואז תבדוק אם יש שורות שמושפעות מזה עם
mysql_affected_rows
אם הוא לא מחזיר כלום.. סימן שזה לא קיים ואז תעשה INSERT

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

רוצה לייעל עוד קצת ? תוסיף גם עם SESSION
וחסכת לך כמה מאות שאילתות ביום..... (כמובן עבור 1000 גולשים לא ייחודיים)

omercnet 02-01-07 00:33

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

אני בטוח שאם רק תשנה את הטבלה לInnoDB כבר תשים לב לשיפור בביצועים
אחרי זה, אני בטוח שאפשר לשפר את השאילתות שלך שיעבדו בצורה יותר יעילה, נפנה לזה אח"כ

sUP 02-01-07 00:56

RS324 תודה רבה אחי :)

ו omercnet מזה InnoDB?

RS324 02-01-07 15:45

ציטוט:

נכתב במקור על ידי sUP (פרסם 398821)
RS324 תודה רבה אחי :)

ו omercnet מזה InnoDB?

יש לך כמה סוגי טבלאות.... ( תסתכל ב PHPMYADMIN כשאתה יוצר טבלה)

שהם בעיקרון
MYISAM , INNODB,MEMORY
ועוד כמה לא זוכר בדיוק איזה....

sUP 02-01-07 18:45

ומה זה כאילו יותר מהיר?

x-ray 02-01-07 19:47

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

נריה 02-01-07 20:28

ציטוט:

נכתב במקור על ידי x-ray (פרסם 399216)
דניאל למה שלא תשתמש בשורה אחת?
תפריד עם פסיקים או סימן אחר ותשתמש בזה,יחסוך לך הרבה שורות. של מידע.

אני חושב
שאם הוא יעשה ככה זה יותר "בזבזני" כי שהוא יוסיף עוד אי פי הוא יטען את כל השורה ורק אז יוסיף את ה IP החדש
וזה יבזבז הרבה תעבורה
עד כמה שאני יודע...

RS324 02-01-07 22:32

ציטוט:

נכתב במקור על ידי נריה (פרסם 399258)
אני חושב
שאם הוא יעשה ככה זה יותר "בזבזני" כי שהוא יוסיף עוד אי פי הוא יטען את כל השורה ורק אז יוסיף את ה IP החדש
וזה יבזבז הרבה תעבורה
עד כמה שאני יודע...

לא מחייב...
אבל יכול להיות לו כפילויות של IP וגם בעיות במשיכה של הנתונים

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

omercnet 03-01-07 08:29

ציטוט:

נכתב במקור על ידי sUP (פרסם 398821)
RS324 תודה רבה אחי :)

ו omercnet מזה InnoDB?

http://www.developer.com/db/article.php/2235521

x-ray 03-01-07 11:15

ציטוט:

נכתב במקור על ידי נריה (פרסם 399258)
אני חושב
שאם הוא יעשה ככה זה יותר "בזבזני" כי שהוא יוסיף עוד אי פי הוא יטען את כל השורה ורק אז יוסיף את ה IP החדש
וזה יבזבז הרבה תעבורה
עד כמה שאני יודע...

יבזבז תעבורה? :-0
אולי יעמיס על השרת אבל מה הקשר לתעבורה? 8-*


כל הזמנים הם GMT +2. הזמן כעת הוא 08:43.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ