کمک فوری پروژه بازدید بالا

[right]سلام

یه روژه بهم پیشنهاد شده که میخوام با

yii 1 و mysql

بنویسمش می خوام بدونم که حجم کاربران آنلاینش شاید تا پنجا هزار تا هم برسه و تعداد رکوردا میلیونی شه

در واقع یه چیزی شبیه به سایت استاد بانک

(ostadbank.com)

با حجم اطلاعات بالاتر

دوستان کمک کنید که

mysql

میتونه با این حجم اطلاعات بازم کار کنه و کلا نظرتونو بگین فقط خواهش میکنم زودتر فردا باید جواب بدم که بگیرم پروژه رو یا نه

بعد سرورمونم اختصاصیه و یه سرور خوب در نظر بگیرید ممنون میشم راهنماییم کنید چون خیلی سر در گمم نمیدونم چکار کنم[/right]

[size="4"][right]از نظر سرعت و کارایی هیچ مشکلی پیدا نخواهید کرد ولی اگر میتونستید با

yii2

پیاده سازی کنید دیگه فوق العاده میشد.

البته که

mysql

جواب میده به شرط اینکه درست ازش استفاده بشه

فیسبوک هم داره از همین دیتابیس استفاده میکنه

فقط دیتابیس باید یکم تخصصی تر از حالت عادی تنظیم بشه

ضمنا موتورهای جستجویی که در سایت اسفاده میکنید ممکن است با

وجود رابطه های بین جداول کند عمل کنند که نیازمند تدابیر بخصوصی هستند . دراین مورد

yii2

خیلی قدرتمنده ولی با

yii1

شما احتمالا مجبور خواهید شد از موتورهای جاوا استفاده کنید که فقط نصبشون روی آپاچی یکم مشکله ولی کارکردن باهاشون سخت نیست

این را هم در نظر داشته باشید که هزینه بروزرسانی از نسخه 1 به نسخه 2 تقریبا به اندازه ساختن پروژه از ابتدا است

توصیه من اینه که هرگز در پروژه

PHP

از

ORACLE

استفاده نکنید چون وقت و هزینه بسیار زیادی را برای برطرف کردن مشکلات بوجود آمده تلف خواهید کرد

در چنین پروژه هایی ارزش واقعی این فریمورک را درک خواهید کرد.

بهتر است به موارد زیر هم مسلط باشید

زبان انگلیسی

Caching

دانش کافی در مورد دیتابیس یا حداقل کسی در این مورد کمکتون کنه

برای سرور هم اگر میخواهید از ایران بخرید من سرورهای افرانت را پیشنهاد میکنم که تکلنولوژی ابری را هم پشتیبانی میکنند .

از موارد دیگه ای که به ذهنم میرسه اینه که شما اگر خودتون

front-end

کار نیستید

قطعا به یک نفر اینکاره نیاز پیدا خواهید کرد چون در چنین سطحی نمیشه ماسمالی کرد

و در آخر برای اینکه یک معیار بهتون بدم

اگر رشتتون کامپیوتر بوده ، تحربتون کمه ولی زمان کافی دارید قبول کنید ولی اگه زمان کم ندارید باز هم به نظرم دل رو به دریا بزنید و قبول کنید!

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

6 حالت بعدی هم که قابل حدس زدن هستند! ;D

[/right][/size]

[rtl]

به نظر من هم اگه دیتابیس رو درست طراحی کنید. و از ابزارهایی که دارید

درست استفاده کنید مشکلی نخواهید داشت.

[/rtl]

[rtl]

تقریبا همه ی گفتنی ها رو آقای نیما و ahb360 گفتند

به نظر من هم Yii حتما میتونه از پس چنین پروژه ای بربیاد. نقطه بحرانی پروژه دیتابیس خواهد یود. علاوه بر توصیه های دوستان، دقت کنید در کوئری هایی که میزنید حتما فقط فیلدهای لازم رو select کنید و حتما از limit استفاده کنید. خصوصا روی join ها دقت کنید. اینها جزئیاتی هستند که وقتی سیستم زیر بار هست شدیدا خودشون رو نشون میدن

ضمنا در قسمت های بحرانی بسیار توصیه میشه به جای active record از cdbcommand یا query builder (و معادل هایشان در yii2) استفاده کنید. اکتیو رکورد در ۹۰٪ موارد به خوبی جوابگو هست و در استفاده نکردن ازش وسواس بخرج ندید

[/rtl]

[right]

سلام واقعا ممنونم از لطفتون

حداقل زمانی که برا این پروژه تخمین میزنید چقدر هست؟

ممنون میشم بازم از راهنمایی هاتون استفاده کنم

از سایت هایی که تا الان آپلود کردم

chebahal.ir

هست سه چهار روزیه آپ شده ممنون میشم یه بررسی هم کنید ببینید کلا اما اینکاره هستیم یا نه. بگیریم این پروزه رو یا نه

چون اگه بگیرمو نشه یا مشکلات پیش بیاد خیلی بد میشه برام

[/right]

[rtl]خیلی ممنونم[/rtl]

[rtl]پس اول اکتیو رکورد اگه نشد بقیه ی راه ها

خیلی ممنوم از لطفتون[/rtl]

[right]

ببخشید اینو فقط کلا متوجه نشدم که اگه یه توضیح اجمالیم در مورد این بدید که دیگه عالی میشه

[/right]

[rtl]

[font="Tahoma"]از همین اول تقریبا میتونید حدس بزنید نقطه بحرانی کد شما کجا خواهد بود. مثلا اگر صفحه اول سایت کوئری ای هست که با هر درخواست باید از دیتابیس سوال بپرسه و امکان کش شدن هم نداره، اینو بدون اکتیو رکورد پیاده کنید. یا نوعی از جستجو در سایت دارید که میدونید کاربران زیادی خواهد داشت و کوئری های پیچیده، حتما بدون اکتیو رکورد پیاده شه بهتره

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

راهش این نیست از اکتیوررکورد استفاده کنید بعد ببینید جواب میده یا نه! حین توسعه همیشه جواب میده حتی اگر همیشه بنویسید News::model()->findAll(). اما وقتی جدول خبرها شد ۱۰۰۰۰ تا خبر و سرورتون داون شد دیگه بهبود کوئری ها بسیار سخت و پرهزینه خواهد بود. از اول به فکرش باشید. ضمنا داستان eager و lazy loading رو هم خصوصا در قسمت ظاهر سایت در نظر داشته باشید. من مجبور شدم سایتی رو که بدون توجه به این نکات ساخته شده بود و الان شدیدا پر بازدید هست رو بهبود بدم و اینا تجربیات اون پروژه است.[/font]

[/rtl]

[size="4"][right]

دیتابیسهای رابطه ای در جستجوها مخصوصا وقتی تحت فشار هستند کاراییشون بشدت افت میکنه بخصوص در مورد

FULL-TEXT SEARCH

و نتایج خوبی هم ارائه نمیکنند.

در چنین مواردی معمولا از

SOLR

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

نسخه جدید فریمورک با سرویسهایی مثل

sphinx

و

elastic search

رابطه خوبی برقرار کرده که کار با این سرویسها راحت شده و از مشتریان این سرویسها میتونید کیفیت کارشون را بسنجید.

در مورد تخمین هم من اطلاعاتم کافی ندارم ولی با همینایی که گفتی فکر کنم یک ماه تا یک ماه و نیم کار میبره بسته به اینکه چقدر درگیر سرویس جستجو بشی. البته من یکم تنبل هستم و معمولا زمانهایی که تخمین میزنم بیشتر از واقعیت از آب در میاد!

با نمونه کاری که گذاشتی کاملا معلومه که براحتی از پس کار بر میای.

برات آرزوی موفقیت میکنم[/right][/size]

[right]

وااقعااا ممنونم آقا نمیا لطف بسیار بزرگی کردید

[/right]

[rtl][font="Tahoma"]شدیدا توصیه میکنم از postgresql استفاده کنید[/font][/rtl]