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

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

anti 27-05-10 22:18

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


PHP קוד:

 $query mysql_query("SELECT count(*) as total FROM `XXX` {$somthing}");
$row mysql_fetch_array($queryMYSQL_ASSOC);
$total $row['total'];

$query2 mysql_query("SELECT count(*) as total FROM `XXX2`");
$row3 mysql_fetch_array($query2MYSQL_ASSOC); 

האם יש פה משהו שגוי?
האם יש דרך יעילה יותר להריץ שאילתות?
החיבור למסד מתבצע באופן הבא:
PHP קוד:


mysql_connect
("localhost""32226""456757") or die(mysql_error());
mysql_select_db("32226")or die(mysql_error()); 

נאמר לי להריץ את השאילתות לא דרך ה PHP אלה ישירות במסד,
האם יש מושג מה הכוונה? אין לייעל פה את כל הדבר? תודה לכל העוזר

~The_Sultan~ 27-05-10 22:34

איפה אתה רוצה לבצע אותן אם לא בקובץ ה-PHP?

anti 27-05-10 22:51

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

AlmogBaku 27-05-10 23:08

זו הדרך היחידה.

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

anti 27-05-10 23:35

מה הדרך היעילה ביותר?

AlmogBaku 27-05-10 23:50

ציטוט:

נכתב במקור על ידי anti (פרסם 765564)
מה הדרך היעילה ביותר?

זה לא יעילות. זה נוחות פיתוח

~The_Sultan~ 28-05-10 11:36

לשאלתך, אין שום דבר לקוי בתיכנות שנתת פה..

anti 28-05-10 14:24

ציטוט:

נכתב במקור על ידי Baku (פרסם 765566)
זה לא יעילות. זה נוחות פיתוח

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

RS324 29-05-10 19:38

ציטוט:

נכתב במקור על ידי anti (פרסם 765642)
אני רוצה שהשרת לא יקח כל כך הרבה משאבים מהמעבד, איך זה אפשרי?

על פי מה החלטת שהשאילתות שהצגת פה הם אלה שגורמים לך לעומסים ?
אולי אתה עושה שאילתות בתוך לולאות ואז זה נופל שם ?

Deagly 29-05-10 19:49

למה אתה עושה COUNT על כל השדות ? תעשה COUNT על שדה אחת זה מספיק בשביל לספור כמה רשומות יש..
ואתה סוגר בעזרת mysql_close את החיבור למסד בכל סוף דף? אם לא אז תסגור..

RS324 29-05-10 20:06

ציטוט:

נכתב במקור על ידי Deagly (פרסם 765738)
למה אתה עושה COUNT על כל השדות ? תעשה COUNT על שדה אחת זה מספיק בשביל לספור כמה רשומות יש..
ואתה סוגר בעזרת mysql_close את החיבור למסד בכל סוף דף? אם לא אז תסגור..

COUNT לפי * סופר לפי PRIMERY KEY זאת אומרת שהוא יחזיר לך את כל השורות מבלי לבדוק את הערכים _(אם הם NULL או לא)

(מתוך האתר של MYSQL
COUNT(*) is somewhat different in that it returns a count of the number of rows retrieved, whether or not they contain NULL values.
)
ככה שאין קשר ,
גם לסגירה אין קשר , החיבור נסגר אוטומטית חלק מהסגירה של הדף ה PHP
אז 2 הנקודות האלה בוודאות לא מהוות את הבעיה.

ASTeam 29-05-10 21:06

יתכן והבעיה בשאילתות לא יעילות -
אתה קורא לטבלה שלמה כשאתה צריך טורים בודדים
שאילתות כפולות
וכד'....


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

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