سلام و روز خوش

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

ولی بطور کلی یه مواردی رو میشه گفت (هرچند در ریز موارد شاید هنوز بالا پایین بشه کرد):
اگر عکس رو در دیتابیس ذخیره کنین:
کار backup/restore رو راحتتر میکنه و
امنیت عکسها و یکپارچگی اونها با بقیه دیتابیس بهتر هست،
ولی در مقابل هزینه خود دیتابیس بالا میره،
و طراحی دیتابیس و عملیات پیچیده تر میشه،
و از همه مهمتر (به احتمال خیلی زیاد) روی پرفورمنس اثر منفی داره.
این تاثیر پرفورمنس رو باید خیلی دقیق بررسی کنین چون به تعداد و اندازه متوسط عکس ها و حتی این که سیستم عامل چی هست بستگی داره.
چون اگر عکسهای شما سایزش کوچک باشه (در حد چند 100 کیلوبایت) ذخیره در دیتابیس پرفورمنس بهتری میتونه داشته باشه،
در مقابل برای عکسهای بزرگ (چند مگابایتی) ذخیره در فایل پرفورمنس بهتری داره.

از طرفی اگر عکس ها رو به صورت فایل ذخیره کنین:
پرفورمنس میتونه خیلی بهتر باشه (یک اما داره - که پاراگراف بالا اشاره شد)،
هزینه کمتر هست - چون معمولا قیمت هر گیگ فضای دیسک خیلی از کمتر هر گیگ فضای دیتابیس هست،
عکس ها میتونه در جاها (سرورها)ی مختلف ذخیره بشه که قابلیت انعطاف و مقیاس پذیری رو راحتتر میکنه،
کدنویسی خیلی راحتتر و ساده تر هست،
در مقابل عملیات backup/restore پیچیده تر میشه.

در جزئیات اگر وارد بشین نکته زیاد هست برای بررسی - مثلا:
کار با تصاویر ذخیره شده در دیسک روی سرور دیتابیس اورهد و اورلود نداره و گذشته از اون جداگانه هم میشه اجرا کرد،
یعنی این بخش عملیات به وب سرور سپرده میشه بجای دیتابیس سرور که مستقیما اثرش رو روی پرفورمنس میشه دید.
ولی اندازه این بهبود به چیزهای دیگه هم بستگی داره.
یا
اگر عکس ها در فایل ذخیره بشن، کسی که به سرور دسترسی داره (الزاما معنیش این نیست که مجاز به دسترسی به عکس ها هم هست)،
میتونه به عکسها هم دسترسی داشته باشه - و بحث فقط دیدن نیست و امکان ویرایش و عوض کردنش هم هست.

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

در مورد MYSQL اطلاع ندارم، ولی در MSSQL یک تکنیکی هست به اسم file stream،
به این صورت که دیتا فیلدهای باینری بزرگ رو پشت پرده به صورت فایل ذخیره میکنه (البته خودکار نیست و باید دیتابیس رو تنظیم کنین)
در نتیجه مزایای ذخیره در دیتابیس (یکپارچگی) و ذخیره در فایل (پرفورمنس) رو با هم دارین.
=========
در بحث مقایسه، چیز بد یا خوب مطلق نداریم،
اما انتخاب بد و خوب داریم (با توجه به شرایط و وزن پارامترها).