עבור לתוכן

timeout לפקודה (SQL + PHP)

Featured Replies

פורסם

שלום , אני מנסה להכניס קובץ לתוך טבלה לפי הקוד הבא :

<?php
$link = mysql_connect("localhost" , "root" ) or die(mysql_error()); ;
mysql_select_db("table",$link) or die(mysql_error());

$file_handle = fopen("file.sql", "r");
while (!feof($file_handle))
{
$line = fgets($file_handle);
echo $line ;
echo "<BR>" ;
//mysql_query($line , $link);
}
fclose($file_handle);
echo "done" ;
?>

הקובץ כולל כמה מאות שורות עם פקודות SQL של הכנסה לטבלה .

כשאני מריץ את זה בצורה הנוכחית זה מציג לי את זה תוך פחות משניה .

כשאני מוריד את הערה ומנסה להכניס לטבלה זה מחזיר שגיאה אחרי 30 שניות ומכניס בערך 1500 שורות .

(כשאני מריץ אני מוריד את הפקודות להצגה כדי לחסוך ...)

למה זה כל כך איטי ? , או שאולי יש איזה מגבלה על הדטאבייס שאני לא מודע אליה ?

הכל מתבצע על המחשב שלי , השרת הוא WAMP server .

פורסם

למה לא להשתמש ב mysql עם הממשק cli שלו וזהו ?

אני מניח שפה זה איטי, כי אחרי כל שאילתה מוגדר בטח שזה יסגור אוטומטתית טרנזקסציה במקום לעשות הכל במכה (יש לזה בטח פרמטר כמו autocommit או משהו כזה בהגדרת mysql של php).

פורסם
  • מחבר

אתה יכול לפרט קצת יותר

אין לי הרבה ידע בSQL ורוב מה שאני עושה מגיע מחיפושים בגוגל ..

בקשר ל cli - אתה מתכוון לשאילותות שאני עושה ישירות דרך ה phpmyadmin בחלון הקטן ?

אם כן אז זה לא מתאים לי כי התהליך צריך לקרות כל יום בצורה אוטומטית (אלא אם כן יש דרך לבצע את זה דרך קוד)

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

פורסם

הסיבה שהסקריפט נעצר היא שהוא עבר את ה max_exec_time שמוגדר ב PHP.INI, שכנראה כרגע על 30 שניות.

זה המקס' הזמן המותר לסקריפט PHP לרוץ, ושלך פשוט עובר את ה 30 שניות ונעצר.

למה הסקריפט שלך איטי? כי הוא פותח וסוגר Session ל mysql כל שניה, זה לא יעיל וטוחן את המסד.

במקום לפרק את השילתא לשורות, פשוט תריץ אותה פעם אחת, כולה.

פורסם

אז תשקיע קצת יותר ברצינות, יש לך פקודה בשם mysql שמאפשרת לך להכניס למסד נתונים פקודות ישירות. לא דרך אף ממשק.

ארכיון

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

דיונים חדשים