ذخیره تصاویر زیاد و حجیم در دیتابیس Sql Server
با سلام
یه برنامه آرشیو الکترونیکی رو قراره انجام بدم که تعداد بالای 500 هزار تصویر رو قراره ذخیره کنه با جزییات کامل ، و کارفرما اصرار داره تصاویر در خود دیتابیس و به صورت رمز نگاری ذخیره بشه . به نظر دوستان این کار درست هست یا نه ؟ و این وسط هم تاکید روی سرعت اجرا و دسترسی به اطلاعات رو داره .
ممنون میشم دوستان راهنمایی کنن .
پاسخ هوش مصنوعی
ذخیره تصاویر در دیتابیس SQL Server به صورت مستقیم و مخصوصاً برای تعداد زیادی تصویر (مانند 500 هزار تصویر) معمولاً توصیه نمی شود. در زیر به دلایل و پیشنهاداتی برای این مسیله اشاره می کنم:
عملکرد و سرعت: ذخیره تصاویر به صورت BLOB (binary large object) در دیتابیس می تواند به شدت عملکرد را کاهش دهد، به خصوص اگر بخواهید تصاویر را به طور مرتب بارگذاری و نمایش دهید.
حجم دیتابیس: حجم دیتابیس شما به طور قابل توجهی افزایش می یابد و می تواند در مدیریت و پشتیبان گیری مشکلاتی ایجاد کند.
پشتیبان گیری : وقتی تصاویر در دیتابیس ذخیره شوند، زمان پشتیبان گیری افزایش می یابد و ممکن است مشکلاتی در بازیابی اطلاعات بوجود آید.
پیشنهاد می شود که تصاویر در یک سرور فایل جداگانه ذخیره شوند و در دیتابیس فقط مسیر یا URL آن ها ذخیره شود. این باعث می شود دسترسی به تصاویر سریع تر و مدیریت آن ها راحت تر باشد.
اگر به امنیت اطلاعات و رمزنگاری تأکید دارید، می توانید از روش های زیر استفاده کنید:
رمزنگاری فایل ها: قبل از ذخیره سازی تصاویر، آن ها را رمزنگاری کنید و سپس در سرور فایل ذخیره کنید.
استفاده از HTTPS: برای انتقال تصاویر از سرور به کاربر از پروتکل HTTPS استفاده کنید تا امنیت ارتباط تضمین شود.
در نهایت، تصمیم گیری نهایی باید با توجه به شرایط خاص پروژه و نیازمندی های کارفرما انجام شود.
اگر تعداد تصاویرتون 500 هزارتاست که بنظرم این حجم از تصاویر اصلا منطقی نیست در دیتابیس ذخیره بشه. البته حجم تصاویر شما هم مهم هست چقدر باشه. اگر بالای 1 مگابایت هست حجم هر تصویر به صورت عادی به هیچ عنوان نمی تونید این کار رو انجام بدید.
خود مایکروسافت برای تصاویر بالای 1 مگابایت توصیه میکنه DataType رو از نوع VARBINARY(MAX) استفاده کنید و از روش FileStream داده هاتون رو ذخیره سازی کنید.
شما می تونید خود فایل رو رمزنگاری کرده وروی هارد و در یکی از زیرپروژه های خود نرم افزار ذخیره کنید و نیازی به رمزنگاری در دیتابیس نیست.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- حذف کامل یک رکورد در جدول ریلیشن شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- تفاوت اوراکل و Sql Server چیست
- جابه جایی سطر و ستون در Sql Server
- استفاده از Stored Procedure در انتیتی فریم ورک code First
- آپدیت لیستی از رکوردها در Sql Server - آپدیت گروهی اطلاعات در Sql Server
- دلیل پرش 1000 تایی خودکار فیلد identity در Sql server
- مشکل نمایش ندادن Data Type موقع تایپ در Sql Server
- کار با تاریخ شمسی وساعت (استفاده از توابع )