PDA

View Full Version : سوال: علت سرعت بسیار زیاد سایت برنامه نویس در بررسی تعداد ستونها و جدولها و خواندن اطلاعات از جدولها چیه؟



idocsidocs
سه شنبه 07 تیر 1390, 23:40 عصر
همونطور که می دونید سایت برنامه نویس از وی بیولنت استفاده می کنه.

وقتی وارد کنترل پنل خودمون می شیم، جدیدترین تاپکهای انجمنهایی که عضو هستیم، جدید ترین پستهای ارسال شده توی تاپکهایی که توشون اشتراک داریم، پیامها و اخطارهای جدید رو می خونه و به ما نمایش می ده.

فرض کنید که عضو 10 انجمن هستیم، سوالی که دارم اینه که بنظرتون برای خواندن همه این اطلاعات چند کوئری استفاده می شه؟

سوال دیگه اینکه با توجه به حجم زیاد کاربرهای سایت، آیا این تعداد کوئری سرعت لود شدن رو کم نمی کنن؟

لطفا توضیح بدید.

eshpilen
چهارشنبه 08 تیر 1390, 08:22 صبح
بنظرم نرم افزارهایی مثل نرم افزارهای فروم از سیستم کش که خودشون طراحی کردن استفاده میکنن.
مثلا نتیجهء یه کوئری کش میشه و برای کاربران دیگه مجددا کوئری به دیتابیس ارسال نمیشه، بلکه از کش واکشی میشه. شاید این امر در فواصل زمانی انجام بشه و شاید هم با یه فلگی چیزی که نشون میده دیتابیس از آخرین کوئری تاحالا تغییر کرده یا نه.
این کش دقیقا چطوری هست و توی فایله یا دیتابیس و غیره نمیدونم.
بهرحال از قدیم و ندیم گفتن هرکاری راهی داره!!
هروقت آدم نیازش بیفته میتونه از سیستم مناسب استفاده کنه.
ولی فرضا برای یک سیستم کوچیک و معمولی با تعداد کاربران و ترافیک کم فکر نمیکنم چنین سیستمهایی هیچ ضرورتی داشته باشن، علاوه بر اینکه بیخود برنامه رو پیچیده و حجیم میکنن که باعث بالا رفتن هزینهء توسعه و نگهداری و افزایش احتمال باگ در برنامه میشه.

r0ot$harp
چهارشنبه 08 تیر 1390, 10:55 صبح
دوست عزیز . چند وقت پیش یه سایتی نوشتم که به سیستمی وصل بود که شاید در دقیقه بالای چندهزار بار کوئری رو اجرا می کرد .

همین باعث شد مشکل شدید سرعت پیش بیاد . و سرعت خیلی افت کرد . با تغییر اون فیلد اصلی به Index سرعت کمی بهتر شد . بعد از int استفاده کردم . بهتر شد . اینایی که می گم رو همه مدل تست کردم .

در آخر دیگه هرکاری کردم درست نشد تا اینکه type دیتابیس رو به Memory تغییر دادم . این حالت فوق العاده پرسرعت هست . اما مشکل اینه که درخواست ها مستقیما روی مموری تاثر داره .
بعد از این نوع دیگه ای به نام MyIsam هست که سرعتش کمی از Memory کمتر هست اما از Innodb بهتر هست .

شما باید سری به سورس vBulletin بزنید و ببینید دقیقا چی کار کرده . و همینطور با صحبت های آقای eshpilen موافق هستم چون بعضی از کوئری ها کش می شند.

باتشکر احسان

idocsidocs
چهارشنبه 08 تیر 1390, 13:34 عصر
دوست عزیز . چند وقت پیش یه سایتی نوشتم که به سیستمی وصل بود که شاید در دقیقه بالای چندهزار بار کوئری رو اجرا می کرد .

همین باعث شد مشکل شدید سرعت پیش بیاد . و سرعت خیلی افت کرد . با تغییر اون فیلد اصلی به Index سرعت کمی بهتر شد . بعد از int استفاده کردم . بهتر شد . اینایی که می گم رو همه مدل تست کردم .

در آخر دیگه هرکاری کردم درست نشد تا اینکه type دیتابیس رو به Memory تغییر دادم . این حالت فوق العاده پرسرعت هست . اما مشکل اینه که درخواست ها مستقیما روی مموری تاثر داره .
بعد از این نوع دیگه ای به نام MyIsam هست که سرعتش کمی از Memory کمتر هست اما از Innodb بهتر هست .

شما باید سری به سورس vBulletin بزنید و ببینید دقیقا چی کار کرده . و همینطور با صحبت های آقای eshpilen موافق هستم چون بعضی از کوئری ها کش می شند.

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