এসকিউএল সার্ভারে চিত্রগুলি সংরক্ষণ করছেন?


191

আমি একটি ছোট ডেমো সাইট তৈরি করেছি এবং এটিতে আমি স্কিল সার্ভারে একটি চিত্র কলামের মধ্যে চিত্রগুলি সংরক্ষণ করছি। আমার কাছে কয়েকটি প্রশ্ন হ'ল ...

  • এটা কি একটি খারাপ ধারণা?

  • এটি বাড়ার সাথে সাথে আমার সাইটে কর্মক্ষমতা প্রভাবিত করবে?

বিকল্পটি হ'ল ডিস্কে ছবিটি সংরক্ষণ করা এবং কেবলমাত্র ডাটাবেসে চিত্রের রেফারেন্স সংরক্ষণ করা। এটি অবশ্যই একটি সাধারণ দ্বিধা be আমি কিছু পরামর্শ স্বাগত জানাব এবং আমি যদি ভুল করতে পারি তবে ভুল কিছুটা করতে পেরে আসলেই খুশি হব।


5
2017 সালে এই ইস্যুটির জন্য কোনও নতুন সংযোজন রয়েছে কি? এটি কি আজও বৈধ?
হাইকালাল নশুহহ

উত্তর:


271

মাইক্রোসফ্ট রিসার্চ দ্বারা টু ব্লব বা নট টু ব্লব নামে একটি দুর্দান্ত কাগজ রয়েছে ।

বিপুল সংখ্যক পারফরম্যান্স পরীক্ষা এবং বিশ্লেষণের পরে তাদের উপসংহারটি হ'ল:

  • যদি আপনার ছবি বা নথিটি সাধারণত 256KB আকারের নীচে থাকে তবে সেগুলি একটি ডেটাবেজে VARBINARY কলামে সংরক্ষণ করা আরও কার্যকর is

  • যদি আপনার ছবি বা ডকুমেন্টটি সাধারণত 1 এমবি আকারের হয় তবে এগুলি ফাইল সিস্টেমে সংরক্ষণ করা আরও দক্ষ (এবং এসকিউএল সার্ভার ২০০৮ এর ফাইলস্ট্রেম বৈশিষ্ট্যের সাথে, তারা এখনও লেনদেনের নিয়ন্ত্রণে এবং ডাটাবেসের অংশে রয়েছে)

  • এই দু'জনের মধ্যে, আপনার ব্যবহারের উপর নির্ভর করে এটি কিছুটা টস-আপ

আপনি যদি নিজের ছবিগুলি কোনও এসকিউএল সার্ভার টেবিলের মধ্যে রাখার সিদ্ধান্ত নেন তবে আমি দৃ pictures়ভাবে সেই ছবিগুলি সংরক্ষণ করার জন্য একটি পৃথক টেবিল ব্যবহার করার পরামর্শ দিচ্ছি - কর্মচারীর ফটো কর্মচারীর টেবিলে সংরক্ষণ করবেন না - সেগুলি একটি পৃথক টেবিলের মধ্যে রাখুন। এইভাবে, কর্মচারী টেবিলটি আপনার প্রশ্নের অংশ হিসাবে, আপনাকেও সবসময় কর্মচারীর ছবি বাছাই করার প্রয়োজন হবে না এই ধারণা করে, ঝোঁকানো এবং গড় এবং খুব দক্ষ থাকতে পারে।

ফাইলগোষ্ঠীর জন্য ফাইলগুলির জন্য ফাইল এবং ফাইলগোষ্ঠী আর্কিটেকচারের জন্য একটি পরীক্ষার জন্য দেখুন। মূলত, আপনি শুরু থেকেই বড় ডেটা স্ট্রাকচারের জন্য একটি পৃথক ফাইলগ্রুপের সাহায্যে আপনার ডাটাবেস তৈরি করতে বা পরে একটি অতিরিক্ত ফাইলগ্রুপ যোগ করবেন add আসুন একে "LARGE_DATA" বলি।

এখন, যখনই আপনার তৈরি করার জন্য একটি নতুন টেবিল রয়েছে যার জন্য ভর্চার (ম্যাক্স) বা ভারবাইনারি (ম্যাক্স) কলামগুলি সঞ্চয় করা দরকার, আপনি বড় ডেটার জন্য এই ফাইল গ্রুপটি নির্দিষ্ট করতে পারেন:

 CREATE TABLE dbo.YourTable
     (....... define the fields here ......)
     ON Data                   -- the basic "Data" filegroup for the regular data
     TEXTIMAGE_ON LARGE_DATA   -- the filegroup for large chunks of data

ফাইলগ্রুপগুলিতে এমএসডিএন পরিচয় পরীক্ষা করে দেখুন এবং এটির সাথে খেলুন!


এটি কি ভাল জিনিস বা খারাপ জিনিস .... • যদি আপনার ছবি বা নথিটি সাধারণত 1 এমবি আকারের হয় তবে ফাইল সিস্টেমে সেগুলি সংরক্ষণ করা আরও দক্ষ হয় (এবং এসকিউএল সার্ভার ২০০৮ এর ফাইলস্ট্রিইম বৈশিষ্ট্য সহ, তারা এখনও লেনদেনের নিয়ন্ত্রণে থাকে এবং ডাটাবেসের অংশ)
htm11h

দুর্দান্ত উত্তর। আপনি বিষদভাবে ব্যাখ্যা মত যদি মনে করেন কেন আপনি ইমেজ ডেটার জন্য ডেডিকেটেড টেবিল ব্যবহার সুপারিশ, আমি আছে যে dba.SE উপর জন্য পৃথক প্রশ্নের সৃষ্টি
হেইনজি

15

আমি একবার এই দ্বিধা-দ্বন্দ্বে পড়েছি এবং গুগলে মতামতের জন্য বেশ কিছুটা গবেষণা করেছি। আমি যেটা পেয়েছি তা হ'ল অনেকেই চিত্রগুলিকে বৃহত্তর চিত্রগুলির জন্য আরও ভালভাবে ডিস্কে সংরক্ষণ করতে দেখেন, যখন মাইএসকিউএল বিশেষত পিএইচপি এর মতো ভাষা থেকে আরও সহজে অ্যাক্সেসের অনুমতি দেয় allows

আমি একটি অনুরূপ প্রশ্ন খুঁজে পেয়েছি

ছোট পিএনজি চিত্রগুলি সংরক্ষণের জন্য মাইএসকিউএল ব্লগ বনাম ফাইল?

আমার চূড়ান্ত রায়টি ছিল যে প্রোফাইল পিকচারের মতো জিনিসগুলির জন্য, কেবলমাত্র একটি ছোট বর্গ চিত্র যা ব্যবহারকারী হিসাবে সেখানে থাকা দরকার, মাইএসকিউএল এইচডিডি তে একগুচ্ছ থাম্বস সংরক্ষণ করার চেয়ে ভাল হবে, যখন ফটো অ্যালবাম এবং সেগুলির মতো ফোল্ডারগুলির জন্য / চিত্র ফাইলগুলি আরও ভাল।

আশা করি এটা সাহায্য করবে


14

আমি ছবিটি কোনও ডিরেক্টরিতে সঞ্চয় করতে পছন্দ করব, তারপরে ডাটাবেসে চিত্র ফাইলের একটি রেফারেন্স সঞ্চয় করব।

তবে, আপনি যদি ডাটাবেসে চিত্রটি সঞ্চয় করেন তবে আপনার ডাটাবেসটি বিভাজন করা উচিত যাতে চিত্র কলামটি একটি পৃথক ফাইলে থাকে।

আপনি এখানে ফাইলগ্রুপগুলি ব্যবহার সম্পর্কে আরও পড়তে পারেন http://msdn.microsoft.com/en-us/library/ms179316.aspx


11

ওয়েব সার্ভারে কোনও ক্যাটালগে নয়, ডাটাবেজে ছবি কেন সংরক্ষণ করা ভাল।

আপনি সার্ভারের একটি ফোল্ডারে প্রচুর ছবি সঞ্চয় করে একটি অ্যাপ্লিকেশন তৈরি করেছেন, যা ক্লায়েন্টটি বছরের পর বছর ধরে ব্যবহার করে আসছে।

এখন তারা আপনার কাছে আসে। তাদের সার্ভারটি ধ্বংস হয়ে গেছে এবং তাদের এটি একটি নতুন সার্ভারে পুনরুদ্ধার করা দরকার। পুরানো সার্ভারে তাদের আর অ্যাক্সেস নেই। তাদের কাছে কেবলমাত্র ব্যাকআপ হ'ল ডাটাবেস ব্যাকআপ।

আপনার কাছে অবশ্যই উত্স রয়েছে এবং এটি সহজেই নতুন সার্ভারে স্থাপন করতে পারেন, এসকিউএল সার্ভার ইনস্টল করতে পারেন এবং ডাটাবেসটি পুনরুদ্ধার করতে পারেন। তবে এখন সব ছবি শেষ।

আপনি যদি স্কেল সার্ভারে ছবিগুলি সংরক্ষণ করেন তবে সবকিছুই আগের মতো কাজ করবে।

শুধু আমার 2 সেন্ট।


3
ভাল যুক্তি. চিত্রগুলির ব্যাকআপগুলি ডাটাবেস ব্যাকআপের মতোই গুরুত্বপূর্ণ ... আরও কিছুকাল।
ক্রিস ক্যাটিগনি

ফাইল সিস্টেমে চিত্রগুলির পাশাপাশি নেটওয়ার্ক অনুমতিও প্রয়োজন।
ক্রিস ক্যাটিগনি

2
নেটওয়ার্ক অনুমতি একটি ভাল পয়েন্ট। তবে আমি এমন কোনও মামলা দেখছি না যেখানে আপনার কেবলমাত্র ডিবি-র ব্যাকআপ থাকবে। আপনার কাছে অবশ্যই অ্যাপ্লিকেশন এবং ফাইলগুলির একটি ব্যাকআপ থাকবে। আপনি সহজেই ডিবি হারাতে পারেন তবে ফাইলগুলি রাখতে পারেন।
নরবার্ট নবার্টসন

11

এসকিউএল সার্ভারে চিত্রগুলি সংরক্ষণ করার সময় 'চিত্র' ডেটাটাইপ ব্যবহার করবেন না , এমএস অনুসারে এটি এসকিউএল সার্ভারের নতুন সংস্করণে পর্যায়ক্রমে বেরিয়ে আসছে। ব্যবহারের varbinary (সর্বোচ্চ) পরিবর্তে

https://msdn.microsoft.com/en-us/library/ms187993.aspx



7

পারফরম্যান্সের সমস্যাগুলি বাস্তবে আসল কারণগুলির ক্ষেত্রে বৈধ হলেও আপনার ডাটাবেসগুলিতে চিত্রগুলি সংরক্ষণ করা এড়ানো উচিত এটি ডাটাবেস পরিচালনার কারণে। আপনার ডাটাবেস খুব দ্রুত বৃদ্ধি পাবে এবং ডাটাবেসের সাধারণ ফাইল স্টোরেজের চেয়ে অনেক বেশি খরচ হয়। ডাটাবেস ব্যাকআপ এবং পুনরুদ্ধারগুলি ফাইল ব্যাকআপ পুনরুদ্ধারের তুলনায় অনেক বেশি ব্যয়বহুল এবং সময়সাপেক্ষ। একটি চিম্টিতে, আপনি চিত্রগুলি ফুলে যাওয়া থেকে আরও দ্রুত একটি ছোট ডাটাবেস পুনরুদ্ধার করতে পারেন। অ্যাজুরেতে 1 টিবি ফাইল স্টোরেজকে একটি 1 টিবি ডাটাবেসের সাথে তুলনা করুন এবং আপনি ব্যয়ের বিশাল পার্থক্য দেখতে পাবেন।


0

আমার অভিজ্ঞতা হিসাবে, অন্য কোনও স্থানে সজ্জিত চিত্রগুলিতে ইউআরএল সংরক্ষণ করা একটি সাধারণ প্রকল্পের সেরা উপায়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.