رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
login افراد در فروم و مشکلات پایین آمدن دیتابیس و ....
#1
با سلام خدمت اساتید و دوستان عزیز. سوال رو اینجوری شروع می کنم که اگر ما بخواهیم یک فروم راه اندازی کنیم که حداقل در یک لحظه 200-300 نفر آنلاین باشن و ..... بدون اینکه تاثیری در سرعت دیتابیس و یا باعث پایین آمدن دیتابیس و سایت بشه داشته باشیم چه نکاتی رو باید رعایت کنیم.منظور از نکات مواردی که هم در دیتابیس و هم در برنامه نویسی باید رعایت کنیم. دیتابیس پیش فرض رو mysql و زبان برنامه نویسی رو php در نظر بگیریم.
البته اگر امکان توضیح و استفاده از سایر بانک های اطلاعاتی رو هم دارید مزایا، معایب و راه های استفاده اش رو ارائه بدید تا منبع خوبی واسه سایر عزیزان بشه، که در نهایت یک جمع بندی کنیم و در یک فایل ارائه بدیم.
** تجارب خودتون رو در این گونه موارد هم ممنون میشم اگر ارائه بدید**
با تشکر
پاسخ
تشکر شده توسط:
#2
باسلام

بهتر هستش اگر شبکه اجتماعی یا سایتی هستش که رکورد های بالا دراون اجرا می شوند از postgresql استفاده کنید چون بهتر پاسخگو خواهد بود.و مطابق مقایسه ای که یکی از برنامه نویسان عزیز درثبت رکورد های بالا انجام دادن به نتیجه فوق رسیدن که بنده در اینجا برای شما قرار میدهم(آقای رضا شیخله) :
-------------------------------------------------------------
مشخصات سرور
mysql 5.5
postgresql 9.1
debian 7 os
ram 4gig
cpu Intel Core i5-2430M CPU @ 2.40GHz

در تیبل از فیلد های int , char , varchar , smallint استفاده شده بود
مختصر نتایج این بنچ مارک به شرح زیر خدممتان ارائه میگردد

در دستورات select عادی با چندین condition دیتابیس mysql با اختلاف جزئی در حد یک دهم و یک صدم سریعتر از pg بود
اما نیاز سایت وبشمار ایجاب میکرد کوئریهای سنگین محاسباتی روی رکوردها انجام گیرد

دستوراتی شمارشی مثل select count(*) با چندیدن condition با برتری قابل ملاحضه ای با pgsql بود در تستی که انجام شد pgsql در 3.4 ثانیه و mysql در 6.4 ثانیه کوئری را به انجام رساند

در کوئری هایی که شامل دستور count و group by بود برتری با pgsql بود نتیجه کوئری در pgsql در 3.8 ثانیه و در mysql با 7.9 ثانیه به انجام رسید

در کوئری هایی که شامل دستور count(distinct field)بود برتری با mysql بود نتیجه یک کوئری در pgsql با 9.8 ثانیه و در mysql با 5.1 ثانیه به انجام رسید

اما در کوئری هایی که شامل distinct بدون استفاده از count بود برتری با pgsql بود با 2.6 ثانیه در حالیکه mysql در 4.6 ثانیه کوئری را به انجام رساند

در نهایت پیشنهاد میکنم بررسی کنید اگر قرار هست وبسایت شما داده های محاسباتی را ذخیره کند و لازم باشد محاسباتی روی داده ها انجام گیرد مثلا تعداد رکورد ها در سیستم هایی چون آمارگیر و انجمن و شبکه اجتماعی و امثالهم پیاده سازی کنید از postgresql استفاده کنید و اگر هم قرار هست سیستم های خبری و محتوایی پیاده سازی کنید از mysql استفاده کنید
اگر هم احساس میکنید رکوردهای شما هیچ وقت به میلیون رکورد نمیرسد از mysql استفاده کنید که سریعتر هست .
دقت کنید به طور مثال اگر سایت شما در هر دقیقه یک رکورد جدید به دیتابیس اضافه کند , بعد از دو سال به یک میلیون رکورد میرسد !‌!
پس حتما چشم انداز فعالیت سایتی که پیاده میکنید را بررسی کنید .
-----------------------------------------------------------
امیدوارم مفید واقع شود.
پاسخ
تشکر شده توسط: bgsrb88
#3
منابع سرور مثل cpu, ram مهمترین قسمت کار رو به عهده دارن، و همینطور پهنای باند و سرعت لینک سرور و تنطیم و تیون کردن وب سرور، شما تا زیر تست واقعی نبری کار رو و گزارش از وب سرویس و لاگ های دیتابیس نگیری نمیتونی کلی بگی چیکار میشه کرد، اول گزارشاتون و اسکرین شات بگیرین یا فایل کنین بذارید اینجا بررسی کنیم و مشخصات سرورتون هم بگین، این کاری نیست که بشه راه کار کلی داد بهش، 300 نفر آنلاینم تعداد زیادی نیست که mysql رو تعییر بدین و بخواین جایگزینش چیزی بذارید.
کانفیگ فقط با دیدن گزارشات و لاگ ها امکان پذیره.
امیدوارم مفید باشه
_____________________
از دیروز بیاموز. برای امروز زندگی کن و امید به فردا داشته باش. (آلبرت انیشتن)
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان