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

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

בניה 28-07-06 15:25

PHP+mysql שאלת יעילות
 
ב"ה



מה יהיה יותר יעיל.
לפני כל שאילתא לפתוח חיבור למסד נתונים ואחריה לסגור אותו או בתחילת הדף לפתוח ואחרי כן לסגור?
אני צריך תשובות לגבי:
דף שיקח שנייה- כדי להריץ.
דף שיקח יותר משניה.
וגם לגבי שרת MYSQL לא מקומי.

mlnn 28-07-06 15:32

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

amirs_5 28-07-06 15:55

ציטוט:

נכתב במקור על ידי mlnn
אני מניח שיותר יעיל בהתחלה ובסוף, כי ככה הקוד יוצא יותר קצר...

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

BlueNosE 28-07-06 17:36

בפירוש פעם אחת.
תחשוב על זה תאורתית:
זה כמו לפתוח קובץ, וכל פעם להוסיף לו תו אחד ולסגור. (בערך, לא ממש..)
אתה חוסך משאבים ברגע שאתה עובד על אותו חיבור.
אלא אם אתה רוצה לעשות את זה בעזרת 2 מסדים או משהו דומה,
ואז תתנתק מתי שאתה צריך.

שבת שלום,
עומר.

בניה 28-07-06 17:45

ב"ה


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

RS324 28-07-06 19:18

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

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

eLad 29-07-06 10:41

ציטוט:

נכתב במקור על ידי בניה
ב"ה


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

תשובה טכנית לגמרי תוכל למצוא רק בגוגל (בנצ'מרקים) או לבדוק בעצמך (שים לב שהשרת צריך להיות באותו מצב קאש, אותו עומס עליו, אותה גרסאת מסד ו PHP וכו' - ליצירת תנאים אופטימאליים)

באשר לשאלתך "בשפות מיקרוסופט" -

ישנם שני אובייקטים: ה connection (להתחברות למסד נתונים) ואובייקט ה recordset (עבודה עם שאילתות).

את ה connection פותחים בתחילת העבודה עם מסד נתונים וסוגרים בסוף העמוד (לאחר הפעולה האחרונה עם המסד).

את ה recordset מגדירים בתחילת העבודה עם המסד, פותחים לפני כל שאילתא וסוגרים בסיומה. יש לך 2 שאילתות? יהיו לך - פתיחה -> שאילתא -> סגירה -> פתיחה -> שאילתא -> סגירה.

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

בניה 29-07-06 21:50

ב"ה



תודה רבה לכל העונים!


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

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