صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 15

موضوع: سخت افزار و تنظیمات مورد نیاز برای افزایش سرعت MySQL با 1 میلیارد داده

  1. #1
    عضو جدید EmRa228 آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    خونه
    نوشته ها
    38
    تشکر تشکر کرده 
    27
    تشکر تشکر شده 
    31
    تشکر شده در
    14 پست

    پیش فرض سخت افزار و تنظیمات مورد نیاز برای افزایش سرعت MySQL با 1 میلیارد داده

    سلام و خسته نباشید
    من یک سایت گزارشگیری و تحلیل گری دارم که با زبان PHP و پایگاه داده MySQL برنامه نویسی شده.

    این سایت فقط یک کاربر دارد اما پایگاه داده اش در مجموع حدود 1 میلیارد رکورد دارد و دارای دو جدول 300 میلیون رکوردی و نرخ افزایش روزانه 5 میلیون رکورد است.

    روی سرور MySQL آن گزارش گیری های پیچیده انجام می شود که مصرف بسیار بالای CPU را در بر دارد.
    متاسفانه زمان بعضی از گزارش ها به 6 ساعت هم می رسد اما ما نهایتا 60 ثانیه می خواهیم.
    این سایت هم اکنون روی سرور با 20 گیگ رم و حدود 2.7 پردازنده 4 هسته ای Xeon پشتیبانی می شود.


    قیمت برای ما اهمیتی ندارد، فقط می خواهیم سرعت گزارش دهی کاهش پیدا کند.
    آیا راهکار سخت افزاری برای کاهش زمان گزارش دهی، با توجه به اینکه فقط یک پردازش را یک نفر انجام می دهد، دارید؟
    بیشتر منایعی که MySQL مصرف می کند مخصوصا در مواقع JOIN زدن، CPU است اما هر پردازش بیشتر از 2.7 مصرف ندارد.


    به نظر من چون بزرگترین سایت دنیا (فیس بوک) از پایگاه داده MySQL استفاده می کند، خود MySQL نباید اینقدر ضعیف باشد!!!
    اما وقتی سه جدول که هر کدام حدود 1 میلیون رکورد دارد را LEFT JOIN می زنم چند ساعت طول می کشد، این غیر طبیعی نیست؟
    البته در صورت نیاز می توانیم کل پایگاه داده را به سیستم قوی تر تغییر دهیم!


    آیا راهکار سخت افزاری برای کاهش زمان گزارش دهی، با توجه به اینکه فقط یک پردازش را یک نفر انجام می دهد، دارید؟

    منتظر جوابتان هستم
    باتشکر

  2. # ADS




     

  3. #2
    عضو انجمن Nik0TiN آواتار ها
    تاریخ عضویت
    Sep 2011
    نوشته ها
    122
    تشکر تشکر کرده 
    40
    تشکر تشکر شده 
    186
    تشکر شده در
    121 پست

    پیش فرض پاسخ : سخت افزار و تنظیمات مورد نیاز برای افزایش سرعت MySQL با 1 میلیارد داده

    دوست عزیز بحث سخت افزار به تنهایی مطرح نیست !
    باید در کدهاتون تجدید نظری صورت پذیرد ..... مثلا اگر هر بار قرار است رکورد های تکراری را بازیابی کنید ، این رکورد ها در تمپی قرار گیرند که نیاز نباشد کوئری های اضافه به سمت دیتا بیس انجین ارسال شود
    چیزی که من تو صحبت هاتون متوجه میشم اینه که کدهاتون به احتمال زیاد مناسب برای اینکار نیستند........
    درسته فیس بوک از چنین امکاناتی استفاده میکنه اما فراموش نکنید که اونها فریم ورک ها و برنامه نویسی های خاص خود را دارند ......

  4. #3
    عضو جدید EmRa228 آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    خونه
    نوشته ها
    38
    تشکر تشکر کرده 
    27
    تشکر تشکر شده 
    31
    تشکر شده در
    14 پست

    پیش فرض پاسخ : سخت افزار و تنظیمات مورد نیاز برای افزایش سرعت MySQL با 1 میلیارد داده

    ممنون از پاسختان
    اما قطعا من مطمئن هستم که مشکل کد نویسی ندارم که در این بخش سوالم رو مطرح کردم.
    برای مثال LEFT JOIN کردن سه جدول حتی از داخل phpmyadmin نیز چند ساعت زمان می برد!!!

  5. #4
    عضو انجمن mojiz آواتار ها
    تاریخ عضویت
    May 2010
    نوشته ها
    191
    تشکر تشکر کرده 
    16
    تشکر تشکر شده 
    295
    تشکر شده در
    230 پست

    پیش فرض پاسخ : سخت افزار و تنظیمات مورد نیاز برای افزایش سرعت MySQL با 1 میلیارد داده

    ایندکس هاتون درست هست؟


    هاست اشتراکی از 4 کشور http://aradrayan.net
    هاست ضد DDOS
    آراد رایان شماره ثبت 381424


  6. #5
    عضو انجمن camelian77 آواتار ها
    تاریخ عضویت
    Sep 2011
    محل سکونت
    Los Angeles, CA
    نوشته ها
    441
    تشکر تشکر کرده 
    148
    تشکر تشکر شده 
    934
    تشکر شده در
    622 پست

    پیش فرض پاسخ : سخت افزار و تنظیمات مورد نیاز برای افزایش سرعت MySQL با 1 میلیارد داده

    به نظر من هم این مشکل بیشتر مربوط به ساختار داده هست data structure که باید بازبینی بشه. به این موارد توجه کنید :

    ۱. موتور دیتابیس چیست؟ InnoDB? Xtreme? MyISAM?

    ۲. آیا داده ها قابلیت پارتیشن شدن رو دارن؟ اگر بله حتما بکنید. پارتیشنینگ روی سیستم ما با ۱۶۰ میلیون داده زمان سرچ ها رو ۳ برابر کاهش داد

    ۳. در هنگام JOIN کردن از چه متدی برای مچ کردن استفاده شده؟ sq1.data1 = sq2.data1 ? یا از foreign key?

    ۴. امکان کش کردن قسمتی از اطلاعات در php buffer هست که جوین نرم افزاری انجام بشه؟

    ۵. امکان آرشیو کردن قسمتی از تیبل بزرگ ۱ میلیاردی شما هست؟

    ۶. با داشتن ۶۴ گیگ رم می تونید کل اطلاعات رو در رم بخونید و زمان دسترسی رو شدیدا کاهش بدید (تقریبا ۱۰ برابر)

    کلا باید ساختار داده شما بررسی بشه ... و ضمنا مای اس کیو ال یک نرم افزار threaded درست و حسابی نیست باید از apache lucene Or apache Solr OR استفاده کنید این کار شما big data هست.

    در facebook از mysql به شکل grid - clustered database استفاده می شه.... یعنی یک کوئری می دونه که کدوم سرور حاوی کدوم اطلاعات هست و می ره از اون می پرسه.
    کمپین یاد آوری زبان فارسی به وب هاستینگ تالک !

    چگونه از هاست / سرور مجازی خود شکایت کنیم؟ (طنز) http://www.webhostingtalk.ir/f118/92986/
    ----------------------------------------------------------


  7. تعداد تشکر ها از camelian77 به دلیل پست مفید


  8. #6
    عضو دائم TukaNet آواتار ها
    تاریخ عضویت
    Feb 2009
    نوشته ها
    1,432
    تشکر تشکر کرده 
    898
    تشکر تشکر شده 
    3,419
    تشکر شده در
    1,984 پست

    پیش فرض پاسخ : سخت افزار و تنظیمات مورد نیاز برای افزایش سرعت MySQL با 1 میلیارد داده

    چون در مورد نرا افزاری اطلاع دقیقی ندارم نظری نمی دهم

    ولی از نظر سخت افزاری استفاده از کلاسترینگ چند سرور و یا استفاده از رایانش ابری برای شما موثر خواهد بود

  9. #7
    عضو انجمن camelian77 آواتار ها
    تاریخ عضویت
    Sep 2011
    محل سکونت
    Los Angeles, CA
    نوشته ها
    441
    تشکر تشکر کرده 
    148
    تشکر تشکر شده 
    934
    تشکر شده در
    622 پست

    پیش فرض پاسخ : سخت افزار و تنظیمات مورد نیاز برای افزایش سرعت MySQL با 1 میلیارد داده

    اگر واقعا نمی شه کل دیتابیس رو تغییر داد پیشنهاد من استفاده از سرور با ۱۲۸ گیگ رم + ۱۶ سی پی یو و خوندن کل داستان در memcache هست
    کمپین یاد آوری زبان فارسی به وب هاستینگ تالک !

    چگونه از هاست / سرور مجازی خود شکایت کنیم؟ (طنز) http://www.webhostingtalk.ir/f118/92986/
    ----------------------------------------------------------


  10. تعداد تشکر ها از camelian77 به دلیل پست مفید


  11. #8
    عضو انجمن compiler آواتار ها
    تاریخ عضویت
    Sep 2012
    محل سکونت
    USA
    نوشته ها
    544
    تشکر تشکر کرده 
    228
    تشکر تشکر شده 
    615
    تشکر شده در
    443 پست

    پیش فرض پاسخ : سخت افزار و تنظیمات مورد نیاز برای افزایش سرعت MySQL با 1 میلیارد داده

    نقل قول نوشته اصلی توسط EmRa228 نمایش پست ها
    سلام و خسته نباشید
    من یک سایت گزارشگیری و تحلیل گری دارم که با زبان PHP و پایگاه داده MySQL برنامه نویسی شده.

    این سایت فقط یک کاربر دارد اما پایگاه داده اش در مجموع حدود 1 میلیارد رکورد دارد و دارای دو جدول 300 میلیون رکوردی و نرخ افزایش روزانه 5 میلیون رکورد است.

    روی سرور MySQL آن گزارش گیری های پیچیده انجام می شود که مصرف بسیار بالای CPU را در بر دارد.
    متاسفانه زمان بعضی از گزارش ها به 6 ساعت هم می رسد اما ما نهایتا 60 ثانیه می خواهیم.
    این سایت هم اکنون روی سرور با 20 گیگ رم و حدود 2.7 پردازنده 4 هسته ای Xeon پشتیبانی می شود.


    قیمت برای ما اهمیتی ندارد، فقط می خواهیم سرعت گزارش دهی کاهش پیدا کند.
    آیا راهکار سخت افزاری برای کاهش زمان گزارش دهی، با توجه به اینکه فقط یک پردازش را یک نفر انجام می دهد، دارید؟
    بیشتر منایعی که MySQL مصرف می کند مخصوصا در مواقع JOIN زدن، CPU است اما هر پردازش بیشتر از 2.7 مصرف ندارد.


    به نظر من چون بزرگترین سایت دنیا (فیس بوک) از پایگاه داده MySQL استفاده می کند، خود MySQL نباید اینقدر ضعیف باشد!!!
    اما وقتی سه جدول که هر کدام حدود 1 میلیون رکورد دارد را LEFT JOIN می زنم چند ساعت طول می کشد، این غیر طبیعی نیست؟
    البته در صورت نیاز می توانیم کل پایگاه داده را به سیستم قوی تر تغییر دهیم!


    آیا راهکار سخت افزاری برای کاهش زمان گزارش دهی، با توجه به اینکه فقط یک پردازش را یک نفر انجام می دهد، دارید؟

    منتظر جوابتان هستم
    باتشکر

    توصیه من به شما اینه :

    استفاده از سروری با حد اقل ۲ سی پی یو فیزیکی Intel E5-2687W و ۲۵۶ گیگ رم + هارد SSD که سخت افزار قدرتمندی برای این کار به حساب میاد

    استفاده از نسخه های Enterprise MySQL

    استفاده از Nginx + php-fpm

    استفاده از لینوکس توزیع Ubuntu یه جای CentOS

    کانفیگ بدون کنتزل پنل و بسیار سبک


  12. #9
    عضو جدید EmRa228 آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    خونه
    نوشته ها
    38
    تشکر تشکر کرده 
    27
    تشکر تشکر شده 
    31
    تشکر شده در
    14 پست

    پیش فرض پاسخ : سخت افزار و تنظیمات مورد نیاز برای افزایش سرعت MySQL با 1 میلیارد داده

    نقل قول نوشته اصلی توسط mojiz نمایش پست ها
    ایندکس هاتون درست هست؟
    بله، علاوه بر ایندکس، از partitioning و Engine مناسب هم استفاده کردم.

  13. #10
    عضو جدید EmRa228 آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    خونه
    نوشته ها
    38
    تشکر تشکر کرده 
    27
    تشکر تشکر شده 
    31
    تشکر شده در
    14 پست

    پیش فرض پاسخ : سخت افزار و تنظیمات مورد نیاز برای افزایش سرعت MySQL با 1 میلیارد داده

    ۱. موتور دیتابیس چیست؟ InnoDB? Xtreme? MyISAM?
    در بعضی جدول ها MyISAM در بعضی دیگر InnoDB ولی سعی کردم در جدول های دارای رکورد میلیونی از InnoDB استفاده کنم.

    ۲. آیا داده ها قابلیت پارتیشن شدن رو دارن؟ اگر بله حتما بکنید. پارتیشنینگ روی سیستم ما با ۱۶۰ میلیون داده زمان سرچ ها رو ۳ برابر کاهش داد
    بله، جدول های بزرگ پارتیشن شدند ولی جدول 1 میلیونی خیر! یک میلیون نیاز به پارتیشن داره؟

    ۳. در هنگام JOIN کردن از چه متدی برای مچ کردن استفاده شده؟ sq1.data1 = sq2.data1 ? یا از foreign key?
    از JOIN معمولی
    کد PHP:
    SELECT FROM `kLEFT JOIN `jUSING(`k1`) 
    ۴. امکان کش کردن قسمتی از اطلاعات در php buffer هست که جوین نرم افزاری انجام بشه؟
    در این مورد بیشتر توضیح می دید؟

    ۵. امکان آرشیو کردن قسمتی از تیبل بزرگ ۱ میلیاردی شما هست؟
    منظورتون از آرشیو کردن دقیقا چیه؟


    ۶. با داشتن ۶۴ گیگ رم می تونید کل اطلاعات رو در رم بخونید و زمان دسترسی رو شدیدا کاهش بدید (تقریبا ۱۰ برابر)
    اگر واقعا نمی شه کل دیتابیس رو تغییر داد پیشنهاد من استفاده از سرور با ۱۲۸ گیگ رم + ۱۶ سی پی یو و خوندن کل داستان در memcache هست
    چطوری این کار رو انجام بدم؟


    باید از apache lucene Or apache Solr OR استفاده کنید
    در مورد ویژگی های اینا یه توضیح می دید؟
    مثلا سرعت ورود رکورد در ثانیه


    در facebook از mysql به شکل grid - clustered database استفاده می شه.... یعنی یک کوئری می دونه که کدوم سرور حاوی کدوم اطلاعات هست و می ره از اون می پرسه.
    وقتی می خواد ببینه دوستای من چه مطالبی نوشتن که به من نشون بده حتما JOIN استفاده کردن دیگه، اونم JOIN دو جدول چند میلیارد رکوردی!!!!!!
    نمیشه یه کاری کرد مثل فیس بوک قدرتمند بشه؟

صفحه 1 از 2 12 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. مشکل با stop شدن mysql راس ساعت ساعت خاص
    توسط moferferi در انجمن سوالات و مشکلات
    پاسخ ها: 3
    آخرين نوشته: October 7th, 2015, 00:33
  2. پاسخ ها: 14
    آخرين نوشته: August 11th, 2013, 00:44
  3. پاسخ ها: 20
    آخرين نوشته: December 24th, 2012, 10:33
  4. پاسخ ها: 3
    آخرين نوشته: October 7th, 2012, 12:29
  5. مشکل down شدن mysql هر چند ساعت!
    توسط m.amiri در انجمن سی پنل CPanel
    پاسخ ها: 9
    آخرين نوشته: July 26th, 2012, 02:25

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •