سلام

من فکر میکنم اگر یک مقدار منطقی به قضیه فکر کنیم به این نتایج میرسیم:

یک دیتابیس برای اینکه توی یک نیبل رایت کنه، تیبل رو لاک میکنه، علت این قضیه رو هم لازم نیست توضیح بدم. چون اگر درس طراحی و پیاده سازی رو پاس کنید یا اینکه کتابهای دیتابیس رو مطالعه کنید به خوبی توضیح میده این قضیه رو.
حالا وقتی که دو نفر همزمان بخوان از یک تیبل دیتابیس استفاده کنن و توش رایت کنن، طبیعتا باید نفر دوم منتظر بمونه که تیبل آنلاک بشه (که این فرایند در دیتابیس انجین انجام میشه و کاربر نقشی در اون نداره). به طور کلی میزان قدرت و ضعف دیتا بیس ها در شرایط مساوی از نظر حجم و ... هم همین هست.
خوب حالا فرض کنید که هزار نفر به طور همزمان بخوان در یک دیتابیس رایت کنن. خوب طبیعتا سرور باز زیادی رو تحمل میکنه. پس در این شرایط بهتره که هیچ پروسس غیر ضروری در سرور صورت نگیره.
از این جهت به نظر من نظر آقای سعید منطقی تره. یعنی اپتیمایز کردن دیتابیس بهتره زمانی انجام بشه که تعداد یوزر های کمی در حال استفاده از دیتا بیس هستن.

از این بحث که بگذریم، در خصوص کاهش حجم دیتابیس باید چند نکته رو در نظر بگیرید.
1- کاهش حجم به دو صورت انجام میشه: الف: فشرده سازی اطلاعات. ب: منظم سازی اطلاعات.
فشرده سازی اطلاعات طبیعتا و ذاتا باعث میشه سرعت افت کنه. چون زمانی برای فشرده سازی و مجددا باز گردانی داده ها صرف بشه.
منظم سازی هم که در کانفیگوریشن دیتا بیس مشخص میشه چطور انجام بشه.

2- بخشی از این کاهش حجم به نوع طراحی دیتا بیس برمیگرده. کاربر استفاده کننده از یک نرم افزار چون نمیتونه طراحی دیتا بیس رو تغییر بده پس نقشی در این زمینه نداره.
ولی به شما اطمینان میدم طراحی دیتا بیس اس ام اف به شکل مناسبی صورت گرفته، کاملا نرماله و مشکل خاصی نداره.

3- بخشی از داده های غیر ضروری میتونه در دیتا بیس ذخیره نشه. مثل آواتارها، تصاویر و امضاها و ... که باید از خارج از هاست لینک بشن. از طرفی لاگها رو هم میشه حذف کرد. ولی طبیعتا وقتی لاگها ذخیره نشن مدیریت مشکل میشه. اگر هک بشید و یا چیزی رو بخواهید بفهمید دیگه ابزار های مدیریتی رو از دست دادید.

4- مای اس کیو ال رو میشه به شیوه های مختلفی کانفیگور کرد. خود مای اس کیو ال دو روش رو به شکل پیشفرض ارائه داده که یکیش برای سرور های کم بار و دیگری برای سرور های با بار زیاد هست. شما میتونید برای این منظور از راهنما های ما اس کیو ال استفاده کنید و مدیر سرور رو قانع کنید که کانفیگوریشن رو تغییر بده. این تغییران بعشیهاشون در کاهش حجم تاثیر دارن.

5- شما اگر حرفه ای هستید، میتونید از روش های ترکیبی کاهش حجم داده برای ذخیره داده ها استفاده کنید. این روشها برخیشون مبتنی بر کد هستن و برخیشون مبتنی بر دیتا بیس انجین. ولی من دقیقا نمیدونم چه ترکیبی میتونه مناسب باشه. ولی اگر شما در این خصوص تحقیق جامعی انجام بدید و به نتایج خوبی برسید بهتون قول میدم مقاله مفیدتون جزو معدود تحقیقات در این خصوصه و من میتونم کمکتون کنم که در یک ژورنال معتبر چاپش کنید و کلی وجهه به دست بیارید

6- خلاصه کلام اینکه اگر حجم دیتا بیستون خیلی بالاست به فکر راه حلهای مناسبی بگیردید. ولی برای صد دویست مگ خودتون رو به دردسر نیندازید. چون صد مگ هاست خوب حداکثر ده بیست هزار تومن میشه. ولی گوشت کیلویی ده پوزنده هزار تومن رو وقتی بخورید و بخواهید به کاهش حجم دیتا بیس فکر کنید خیلی بیشتر از 30 یا 40 هزار تومن براتون آب میخوره!!
ولی اگر دیتا بیستون حجمش بالاست و مثلا به چند صد گیگ میرسه طبیعتا باید از مای اس کیو ال خوشه بندی شده استفاده کنید. یعنی ورژن خاصی از ما اس کیو ال رو با مبلغی از شرکتش بخرید و روی دو یا چند سرور نصب کنید و انجین خودش بر روی اونها دیتا بیس رو کنترل و نگهداری میکنه. اینطوری میتونید با هزینه ای معقول حجم بالاتری از دیتا بیس رو به شکل فشرده روی یک فارم نگهداری کنید.

سپاس.