PDA

View Full Version : insert ده میلیون رکورد تو دیتابیس



sairon123
جمعه 18 اردیبهشت 1394, 11:25 صبح
با سلام خدمت دوستان عزیز

یه مشکلی پیش اومد برام ، ممنون میشم راهنمایی کنین

من یه کلاس دیتابیس نوشته بودم ، الان خواستم امتحان کنم ، می خواستم 10 میلیون رکورد تو دیتابیس ذخیره کنم ،

یه حلقه while نوشتم ، ولی صفحه رو اجرا کردم ، حدودا نزدیکه 50000 رکورد ثبت میکنه و بعدش ارور زیر رو میده ، میشه راهنمایی کنین

Fatal error: Maximum execution time of 120 seconds exceeded in D:\wamp\www\test\class\database.class.php on line 45

با تشکر از دوستان عزیز

sairon123
جمعه 18 اردیبهشت 1394, 12:45 عصر
سلام دوستان ، مشکل حل شد

http://stackoverflow.com/questions/5164930/fatal-error-maximum-execution-time-of-30-seconds-exceeded

بالای صفحه این رو قرار دادم ، مشکل حل شد .

set_time_limit(0);

Mohammadsgh
جمعه 18 اردیبهشت 1394, 13:54 عصر
از تابع sleep هم میتونید استفاده کنید که بین اینسرت یک وقفه ای باشه

sairon123
جمعه 18 اردیبهشت 1394, 14:21 عصر
سلام sleep چه تاثیری تو کد داره ؟ اگه نزارم مشکلی پیش میاد ؟

Mohammadsgh
جمعه 18 اردیبهشت 1394, 14:36 عصر
اگه تعداد اینسرت بالا باشه.این تابع با یک وقفه زمانی(ثانیه) که خودتون میدید.اینسرت رو انجام میده.اون تابعی که خودتون هم نوشتید درسته.تو php.ini زمان پیش فرض پردازش هر برگه 30 ثانیه هستش که اگه اون زمان به پایان برسه خود php جلوی پردازش رو میگیره.چون اگه نگیره یهو دیدی cpu ترکید:لبخند:اون تابع میاد میگه این محدودیت زمانی رو وردار.

sairon123
جمعه 18 اردیبهشت 1394, 14:43 عصر
ممنون دوست عزیر ، الان اگه از sleep استفاده کنم ، مشکل حل میشه ، من داشتم یه جا میخوندم

می گفت sleep یه وقفه ایجاد میکنه و تو این مدت cpu رو آزاد میکنه و واسه حملات بروت فورس هم خوبه

یه سوال دیگه ، میشه از این روش برای حمله به سایت استفاده کرد ؟ مثلا یه حلقه بینهایت و فرستادن اطلاعات فرم لاگین به صفحه اون سایت

Mohammadsgh
جمعه 18 اردیبهشت 1394, 14:51 عصر
تا حالا آزمایش نکردم.ولی خیلی بعید میدونم همچین کاری شدنی باشه

sairon123
جمعه 18 اردیبهشت 1394, 14:54 عصر
ممنون داداش ، فدات :قلب:

sairon123
جمعه 18 اردیبهشت 1394, 15:08 عصر
ببخشید دو تا سوال دیگه هم داشتم ، ممنون میشم جواب بدین

الان این کلاس من مشکلی نداره و ثبت میکنه ولی خوب زمان زیادی طول میکشه ، راهی هست زمان رو به حداقل برسونم ؟؟؟ مثلا تو همون 30 ثانیه 10 میلیون رکورد رو ثبت کنه

بعد سوال دومم هم اینه که اگه بخوام تعداد ثبت همزمان رو تست کنم باید چیکار کنم ؟؟؟ مثلا میخوام ببینم این کلاس تا چندتا اطلاعات همزمان رو میتونه ثبت کنه

Mohammadsgh
جمعه 18 اردیبهشت 1394, 17:18 عصر
در مورد پرسش یک باید بگم من کلاس شما رو ندیدم.ولی خیلی خیلی بعید میدونم.واینکه اون 10 میلیون رکورد به خیلی چیزها بستگی داره.سرور و رم و.... و نوع فیلدهای دیتابیس و خیلی چیزهای دیگه

در مورد پرسش دوم هم میگم باز هم مشخص نمیکنه:لبخند:بستگی به نوع داده و خیلی چیزها داره
امیدوارم تونسته باشم کمکی بهتون کرده باشم:لبخندساده: