שאלה תיאורטית

  • פותח הנושא XiroX
  • פורסם בתאריך

XiroX

New member
שאלה תיאורטית

כך: נגיד שאני צריך להריץ רשימה ארוכה של תנאי עדכון ב mySQL (עדכון פשוט, משהו בסגנון של UPDATE bla SET a=$ex WHERE b=$something), כשex ו something משתנים כל הזמן, מה יותר יעיל- יצירת לולאה שתיצור כל שאילתה ותריץ אותה בנפרד כל אחת:
for ($i=0;$i<sizeof($x);$i++) { $query="UPDATE bla SET a=$x[$i][ex] WHERE b=$x[$i][something]" mysql_query($query); }​
או יצירת מחרוזת שתכיל את כל התנאים ביחד ואז תכראה למסד:
$query=""; for ($i=0;$i<sizeof($x);$i++) { $query=$query."UPDATE bla SET a=$x[$i][ex] WHERE b=$x[$i][something];"; } mysql_query($query);​
או שבעצם זאת אותה סיבוכיות? סתם עניין אותי. כמובן, אם יש דרך יותר יעילה ליצור רשימת תנאים כזאת אני תמיד שמח לגלות דברים חדשים.
 

yuvallb

New member
יעילות בגישה לבסיס נתונים

הכלל הפשוט אומר שככל שתגש לבסיס הנתונים פחות פעמים, הדף ירוץ יותר מהר. כלומר הפקודה: mysql_query($query); היא זאת שצורכת הרבה זמן. (רוב פקודות ה mysql הן עיבוד מקומי של מידע שנשלף ולכן הן לא ניגשות לדטבייס) לכן ברור שהראשון הרבה פחות טוב מהשני.
 
למעלה