بنده دیتابیس هایی نزدیک 1 ترابایت رو هم با mysql مدیریت کردم.
در خصوص دیتابیس دقت کنید حجم دیتابیس در اصل ملاک نیست. چند نکته در سط بالا اهمیت بالا دارند:
1. تعداد کانکشن های همزمان به دیتابیس.
وابستگی مستقیم دارد با تعداد سشیون ها (بازدید های) فعال شماست.
2. تعداد متوسط کوئری ها از هر تیبل به نسبت تعداد سطر های تیبل.
این فاکتور نشات گرفته از مدل ارتباطی اسکریپت شما با دیتابیس است.
3. کامند های SQL متوسط به هر تیبل به نسبت ستون های آن تیبل.
و همینطور تخصصی که بریم جلو فاکتورها جزئیی تر هم خواهد شد تا اونجا که دوستان به مواردی مثل ایندکس ها و ... اشاره کردند. داشتن یک اسکریپت حرفه ای و قدرتمند بار کمتری روی دیتابیس شما ایجاد میکند با وجود ذخیره کل اطلاعات مورد نیاز در دیتابیس.
مشکل عمده این است که طراحی دیتابیس و ساختار اون کاملا امری تخصصی هست که متاسفانه به شکل غیر علمی عمدتاً انجامش می دهند. اتفاقا همین جا بدنیست اشاره کنم وردپرس اصلا مثال خوبی نبود وردپرس خودش یکی از بزرگترین نقاط ضعفش استراکپر دیتابیسش هست. دقیقا به همین دلیل هم هست که به ندرت سایت های پر بازدید وردپرسی باقی بمانند. چون مصرف منابع سر به فلک خواهد کشید. جوملا هنوز از وردپرس در این زمینه بهتر است اما قابل قبول نیست باز.
از cms های معروف شاید بهترین ساختار دیتابیس را دروپال و اپن کارت (فروشگاه ساز) داشته باشند. اگر به ساختار اونها تخصصی نگاه کنید متوجه می شوید چه الگوهای متفاوتی به نسبت دیگر اسکریپت ها لحاظ شده است در مقابل با میلیون ها بازدید کننده شما به منابع زیادی احتیاج نخواهید داشت. هر چند این اسکریت ها در ابعاد دیگر حسابی از وردپرس یا جوملا و رقبای خودشان عقب هستند.
در خصوص سیستم شما اگر صرفا بخواهید کمتر از 10% بهینه سازی کنید ممکن است با اقداماتی مثل اصلاح برخی تنظیمات mysql و دیتابیس به این مقدار دست پیدا کنید. اما اگر دنبال آن هستید که بیش از 10% بهینه سازی را تجربه کنید قطعا ناچار هستید در کدهای خود و ساختار دیتابس (تیبل ها و ستون ها) دستکاری جدی داشته باشید به نوعی بازنویسی کدهاتون منظور هست.
---- در خصوص NoSQL
در مورد شما پیشنهادش نمی کنم. استفاده از این متد ذخیره سازی زمانی که ما یک استراکچر روشن و ثابت داریم بی معنی هست. بحث تخصصیش خارج از حوصله این تاپیک هست.