PDA

View Full Version : کم کردن حجم دیتا بیس حاوی عکس



sara_t
دوشنبه 08 فروردین 1390, 17:02 عصر
سلام دوستان
من یه دیتا بیس دارم که حاوی 20 ملیون عکس هست.و عکس ها هم هر روز زیادتر میشن.برای کم کردن حجم عکس ها رو به فرمت GIF در آوردم اما هنوز هم حجم دیتا بیس من زیاده!
دو راه حل دیگه هم وجود داره:
1. عکسها رو به فرمت png ببرم
2.اونا رو بوسیله لینک تو دیتا بیس بذارم.

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

ircast
دوشنبه 08 فروردین 1390, 17:36 عصر
سلام

شما می توانید بدون تغییر فرمت تصاویر حجم تصاویر رو کم کنید (بدون افت کیفیت)

بوسیله نرم افزار و به صورت دسته جمعی
موفق باشید

sara_t
دوشنبه 08 فروردین 1390, 19:37 عصر
ممنون
من میخام اینو تحت نرم افزار خودم انجام بدم و بصورت تک تک، یعنی هر عکسی کاربر ایجاد میکنه حجمش کم شه و توی دیتا بیس قرار بگیره.

ircast
دوشنبه 08 فروردین 1390, 19:41 عصر
ممنون
من میخام اینو تحت نرم افزار خودم انجام بدم و بصورت تک تک، یعنی هر عکسی کاربر ایجاد میکنه حجمش کم شه و توی دیتا بیس قرار بگیره.

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

Directx
دوشنبه 08 فروردین 1390, 19:43 عصر
شما می گید که 20 میلیون عکس دارید( که بعید می دونم) اون وقت با این تعداد عکس که می گید در حال افزایشه می خایید که تک تک عکس ها رو ویرایش کنید می دونید چه بار پردازشی ای رو سرور داره؟؟!!!
اصلا کار عاقلانه ای نیست پیشنهاد من اینه که بیایید موقع ذخیره عکس تو DB برای سایز یا حجمش شرط بزارید
یاحق

sara_t
سه شنبه 09 فروردین 1390, 19:15 عصر
بله بار زیاده و من این سوال رو به این دلیل مطرح کردم که بار رو کم کنم.
نمیخام عکسها رو مدام نمیایش بدم فقط باید به نحوی اونا رو ذخیره کنم که حجم زیادی نداشته باشند و دیتا بیس رو داغون نکنه.
بله عکسها زیاده و روزی حدود 3000 عدد عکس جدید به دیتا بیس اضافه میشه!!!

vanguard
پنج شنبه 11 فروردین 1390, 10:15 صبح
بله بار زیاده و من این سوال رو به این دلیل مطرح کردم که بار رو کم کنم.
نمیخام عکسها رو مدام نمیایش بدم فقط باید به نحوی اونا رو ذخیره کنم که حجم زیادی نداشته باشند و دیتا بیس رو داغون نکنه.
بله عکسها زیاده و روزی حدود 3000 عدد عکس جدید به دیتا بیس اضافه میشه!!!

سلام
دوست عزیز شما چرا فایل هاتونو تو یک روت قرار نمیدهید من الان یک نرم افزار نوشتم عکس رو وارد دیتا بیس نمی کنم فقط ادرس عکس یک روت در نظر گرفتم بهتر هم هست

حمیدرضاصادقیان
یک شنبه 14 فروردین 1390, 08:37 صبح
سلام.
شما اگر از نسخه 2008 استفاده می کنید میتوانید از قابلیت FIleStream برای ذخیره سازی عکسهاتون استفاده کنید.

m_omrani
یک شنبه 14 فروردین 1390, 10:31 صبح
علاوه بر مطالبی که همه دوستان گفتن این رو هم در نظر داشته باشید:

تغییر فرمت عکس به GIF یا PNG به معنای کمتر شدن اندازه عکس نیست. هر فرمتی کاربرد خاص خودش رو داره و به جاش باید ازش استفاده بشه.

به عنوان مثال در عکس هایی که تعداد رنگ ها کم هست فرمت GIF یا PNG کمترین سایز رو می ده. اما عکس هایی که تعداد رنگ های بسیار زیادی داره و پیچیدگی عکس زیاده فرمت JPG مناسب تره و همون رو اگه به GIF یا PNG تبدیل کنید می بینید سایزش خیلی بیشتر از JPG می شه. می تونید خودتون هم امتحان کنید.

نگهداری عکس (یا فایل کلاً) توی دیتابیس هم شرایطی داره.

اگه حجم عکس تا حدود 1 مگا بایت (به گفته مایکروسافت) یا 200 کیلو بایت (به تجربه افراد حرفه ای)، دیتابیس سریع تر از File-System عکس رو براتون واکشی می کنه و بهتون می ده.

نمی دونم این محاسبه درست باشه یا نه. اما برای 20 میلیون عکس، اگه اندازه هر عکسی 200 کیلو بایت هم باشه، حجم کل عکسها 4 گیگا بایت می شه که به نظر من حجم زیادی نیست.

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

با این حال ذخیره سازی عکس توی دیتابیس خصوصاً در حالتی که تراکنش روی جدولی که ستون VARBINARY(MAX) داره باعث رشد بیرویه Transaction Log می شه.

به همین دلایل و دلایل دیگه بود که مایکروسافت دیتای تایپ جدید FileStream رو در SQL 2008 معرفی کرد.

لذا شاید همون طور که آقای صادقیان هم پیشنهاد دادن، بهترین راه استفاده از FileStream باشه.

m_omrani
دوشنبه 15 فروردین 1390, 00:13 صبح
یک اشتباه لُپی.

توی محاسبه حجم کل 20 میلیون عکس، به ازای هر عکسی 200 کیلو بایت یه اشتباه کوچیک کردم و سه تا صفر نا قابل کم داره. در واقع 4 گیگا بایت نمی شه، 4 ترا بایت می شه!!

عجیبه که کسی هم چیزی نگفت.