ورود

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



Arsess
پنج شنبه 08 مهر 1389, 15:42 عصر
سلام،

من برای یک سایت نیاز دارم که رکوردهای یکی از Table های MySQL رو که بیش از 30,000,000 رکورد داره، ساعتی یکبار پاک کنم و دوباره insert کنم. این عمل نیاز به 8 ساعت زمان داره. چه راهی پیشنهاد میکنید؟ :افسرده:

ضمنا من سایت رو با PHP نوشتم.

Arsess
جمعه 09 مهر 1389, 15:30 عصر
چرا هیچکس به سوال من جواب نمیده؟

Sk1900n3
جمعه 09 مهر 1389, 16:02 عصر
دوست عزیز
شما باید یه برنامه ی ویندوز واسه ی این کارتون بنویسن
:متفکر:
به بعدش راحته ؟

mohsensaghafi
جمعه 09 مهر 1389, 20:37 عصر
دوست عزیز.
شاید اعمال تغییراتی که لازمه زمان کمتری رو لازم داشته باشه. سعی کنید آپدیت کنید. فقط اون چیز هایی رو که باید تغییر کنه.

Arsess
شنبه 10 مهر 1389, 12:10 عصر
از پاسخهاتون ممنونم. شاید خوب توضیح ندادم.

300 داروخانه هستن و هر داروخانه 100000 دارو داره. صاحبان این داروخانه ها قیمت داروها رو از صبح تا شب بارها و بارها عوض میکنن. من یه سایت نوشتم که کاربر توسط اون میتونه روی هر دارو ارزونترین داروخانه رو پیدا کنه. حالا من باید توسط cronjob ساعتی یکبار این اطلاعات رو از 300 سایت مختلف بگیرم و توی MySQL Tableخودم بریزم. این کار زمان بسیار زیادی میخواد و حجم Table منو تا 300MB بالا میبره. تازه مشکل از این هم بدتره چون هر داروخانه بعد از عوض کردن دو سه تا دارو میره توی Admin و دستی Update میکنه. شاید هر داروخانه از صبح تا شب بیش از سی بار بخواد دستی Update کنه که قیمتهاش آناً توی سایت تغییر کنه.

یه سایت رقیب به داروخانه ها میگه وقتی توی Admin روی آپدیت کلیک میکنن، ممکنه تا 15 دقیقه هنوز نتایج قبلی رو ببینن.

ضمناً سیستم عامل سرور ما Linux هست. حالا من چه برنامه ای باید بنویسم یا چه تغییری اعمال کنم؟

hamid_rezas
پنج شنبه 22 مهر 1389, 19:23 عصر
از پاسخهاتون ممنونم. شاید خوب توضیح ندادم.

300 داروخانه هستن و هر داروخانه 100000 دارو داره. صاحبان این داروخانه ها قیمت داروها رو از صبح تا شب بارها و بارها عوض میکنن. من یه سایت نوشتم که کاربر توسط اون میتونه روی هر دارو ارزونترین داروخانه رو پیدا کنه. حالا من باید توسط cronjob ساعتی یکبار این اطلاعات رو از 300 سایت مختلف بگیرم و توی MySQL Tableخودم بریزم....
این که گفتی یعنی چه!!!
:متفکر:عجیبه. ولی یک بحثی شما چطوری از این 300 داروخانه میخوایی اطلاعات اونها رو بگیری خود این اصلا یک پهنای باند بالا میخواد تا به سرویس دهنده های داروخانه ها متصل بشه و اطلاعات اونها را بگیره. یعنی در واقع شما خیلی زور بزنی اطلاعات 100000 داروی یک داروخانه را بگیری و بقولی ازشون اکسپورت بگیری.
یعنی در واقع در اول کار موندی...همچین کاری با ابرسرور فکر کنم قابل انجام باشه ولی به چه قیمتی؟
ولی نظر من اینه که باید تغییراتی در هر دو سیستم ایجاد بشه. چه داروخانه ها و چه سیستم شما. به نظر من باید تغییرات را گرفت نه همشو. داروخانه هم موظف اند زمان آخرین تغییر قیمت هر دارو را در کنار قیمت ذخیره کنند و شما با توجه به اون اطلاعات خودتونو بروزرسانی کنید.
یکم بیشتر توضیح بدی بهتره. شاید دارم اشتباه میکنم.

ameysams
یک شنبه 16 آبان 1389, 23:21 عصر
با سلام ، نمیدونم مشکل حل شده یا نه ولی با فایل xml این کار خیلی راحتتر میشه؟
مثل همین کاری که خبرگزاری ها برای خروجی rss خودشون انجام می دهند!
اینجوری فقط اطلاعاتی که تغییر می کنند را میتوانید دریافت کنید.