واضح آرشیو وب فارسی:سایت ریسک: کمک برای بهبود بخش login سایت packprog 03 تير 1387, 12:55سلام یک گروه خارجی جهت تکمیل وبسایت خود، منو استخدام کردند تا این کار رو انجام بدم. در این سایت حدود 500 هزار کاربر ثبت نام کردند و حدودا روزانه 750 هزار بازدید داره. متاسفانه این وبسایت از آغاز فعالیتش تا کنون پس از حدود 3 سال هیچ تغییری در منطق برنامه تقریبا نداشته و این گروه هر ماه به دلیل رعایت نشدن اصول برنامه نویسی، هزینه ی زیادی (حدود 3000 دلار) جهت تامین سخت افزاری سرور تقبل میکنند. به همین دلیل یکی از وظایفی که بر عهده دارم دارم ، ارتقاء performance و سرعت پردازش اطلاعات سایت هست. چند روز پیش بطور اتفاقی متوجه شدم که قسمت چک کردن اینکه کاربر Login کرده یا نه یکی از بزرگترین مشکلاتو داره و اصلا عملکرد خوبی نداره ، یعنی سرعت بسیار پایینی داره و با حل کردن مشکل این قسمت احتمالا میتونیم حداقل از یکی از 6 سروری که برای up نگه داشتن سایت و داشتن سرعت قابل قبول هر ماه هزینه میکنند، بی نیاز بشوند. برنامه نویس قبلی سایت برای اینکه ببینه کاربر Login کرده یا نه، برنامه را طوری نوشته که در هر صفحه، چک میکنه ببینه cookie ای ثبت شده یا نه، اگه کوکی ثبت شده بود، مقدار password و از cookie بدست میاره و با اونی که تو دیتابیس هست چک میکنه، اگه برابر بود، پس کاربر قبلا Login کرده و یک کاربر معمولی هست، در غیر اینصورت، مثل یک مهمان با او برخورد میشه و در بعضی مواقع که دسترسی بعضی کارها را نداره، ارجاع داده میشه به صفحه ثبت نام. حتما فهمیدید مشکل کجاست! این برنامه نویس با باز شدن هر صفحه، 500 هزار رکورد در پایگاه داده و چک میکنه، با احتساب روزانه بیش از 750 هزار بازدید، یعنی روزانه بیش از 375.000.000.000 رکورد در پایگاه داده search میشه! خب، 375 میلیارد خیلی خیلی زیاد هست و یکی از مشکلات من هم در همینجاست! من روی این مساله چند روزی فکر کردم ولی چون تا حالا با جدول بزرگی مثل این مواجه نشده بودم، نتیجه ای نگرفتم که چطوری سرعت پردازش اطلاعات در این پایگاه داده را افزایش بدهیم. میخواستم نظر شما را هم جویا بشوم. در ضمن، جدول کاربران در پایگاه داده با 3 ستون id, username, password فرض میکنیم. چون بقیه ستون ها مشخصات کاربران هست. SQL ای که کلمه عبور رو بدست میاره هم چیزی شبیه به این هست: SELECT password FROM users WHERE username=$username منتظر نظرات و راهنمایی های شما هستم. mbm2000 03 تير 1387, 18:50دوست من اگه میخوای سرعت login کردن کاربر افزایش پیدا کند پیشنهاد من آجاکس است. packprog 04 تير 1387, 09:04من فکر میکنم منظورم چیز دیگری بود! صفحات این سایت طوری طراحی شده که دریافت اونها از سرور ، از زمانی که شروع به دریافت میکنه(بعد از پردازش در سرور) در کمتر از 10 ثانیه بار گزاری میشه، اما ما میخواهیم باری که روی سرور وجود داره کم بشه. همونطور که قبلا گفتم، ما میخواهیم performance بهبود یابد، نه download speed. لطفا راهنمایی های خود را از ما دریغ ننمایید.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 449]