مجتبی
2 سال پیش توسط مجتبی مطرح شد
7 پاسخ

ثبت اطلاعات در حد 1000 رکورد در دیتابیس

سلام
اگر بخواهیم مثلا 10000 رکورد را در دیتابیس وارد کنیم کدام روش پیشنهاد می شود
1 - قرار دادن 10000 رکورد در یک آرایه و وارد کردن یک باره مثلا توسط insert
2 - ثبت سطر به سطر اطلاعات مثلا توسط save
در روش اول حافظه ram اشغال می شود و ممکن است سرور down شود
در روش دوم cpu درگیر می شود وممکن است سرعت کم شود
اگر درست نوشتم کدام پیشنهاد می شود ؟
یا روش بهتری سراغ دارید؟


ثبت پرسش جدید
سینا شاه‌اویسی
تخصص : برنامه نویس فرانت اند
@sinashahoveisi 2 سال پیش مطرح شد
1

سلام
موقعی که سرور سرش خلوته مثل شب، 10 تا 10 ها تو آرایه insert کن و بعدش یه مکث 1 یا 2 ثانیه ایی


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 2 سال پیش مطرح شد
1

دیتابیس رو آخر شب دانلود کن و توی phpmyadmin بیارش
روی سیستم خودت منظورمه
و بعد عملیات رو انجام بده ، در ضمن 10 هزارتا که عددی نیست :)


مجتبی
@mojtabap1362 2 سال پیش مطرح شد
0

سلام
تشکر از سینا شاه‌اویسی و سیدعلی موسوی
ببخشید من سوالم رو درست مطرح نکردم
من می خوام اطلاعات از یک منبع خارجی بگیریم با حجم بالا مثلا یک آرایه متشکل از 100 عضو و هر عضو 10000 یا 100000 رکورد تکست و هر رکورد 500 کاراکتری و بعد این مقادیر را در دیتابیس وارد کنم
چطوری وارد کنم

اطلاعات چطور در سرور از متغیر data بگیرم جدا کنم ودر دیتابیس خود وارد کنم
دیتابیس هم روی سرور خودم است

    public function insert($data)
    {
        foreach ($data as $key => $value1) {
            foreach ($value1 as $key => $value2) {
                foreach ($value2 as $key => $value3) {
                        ### insert 1
                }
                    ### insert 2
            }
                ### insert 3
        }
            ### insert 4         
    }

1 - گرفتن و قرار دادن 10000 رکورد در یک آرایه و وارد کردن یک باره مثلا توسط insert
2 -گرفتن و ثبت سطر به سطر اطلاعات مثلا توسط save
در روش اول حافظه ram اشغال می شود و ممکن است سرور down شود
در روش دوم cpu درگیر می شود وممکن است سرعت کم شود


علی مهدوی
تخصص : طراح و توسعه دهنده وب
@mahdavi 2 سال پیش مطرح شد
1

سلام بهتره برای اینکه هم از رم و سی پی یو همزمان کم نیارید بهتره از روش chunk استفاده کنید
بر حسب دیتایی که دارید به چند قسمت مساوی تقسیم کنید و هر قسمت رو آرایه مجزا کرده و از دستور insert استفاده کنید در این روش نه مشکل سی پی یو پیدا میکنید نه مشکل رم .


مجتبی
@mojtabap1362 2 سال پیش مطرح شد
1

تشکر از شما آقای مهدوی


سید هدایت محمدی
تخصص : کارمند
@Hedayat0148 2 سال پیش مطرح شد
0

سلام
بهترین روش استفاده از ی فایل اکسل و Insert کردن آن مستقیم به دیتابیس
احتمالا خطای دستور شما در صورتی ک بر خط باشید خیلی زیاد و در یک لحطه غیر فعال شدن ممکن است حجم زیادی از دیتابیس رو درگیر کنید و بعداز آن با جطای تکراری بودن مواجه شید


سیدمهدی موسویان
تخصص : توسعه دهنده جنگو
@seyedmm 2 سال پیش مطرح شد
0

همونطور که جناب @mahdavi فرمودند روش chunk خیلی روش خوبی میتونه باشه. نه CPU کم میارید نه رم.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام