ডিবিতে চিত্রগুলি সংরক্ষণ করছেন - হ্যাঁ না না?


415

সুতরাং আমি এমন একটি অ্যাপ্লিকেশন ব্যবহার করছি যা ডিবিতে চিত্রগুলি প্রচুর পরিমাণে সঞ্চয় করে। এ সম্পর্কে আপনার দৃষ্টিভঙ্গি কী? আমি সরাসরি ডিবিতে সঞ্চয় করার চেয়ে ফাইল সিস্টেমে লোকেশনটি সঞ্চয় করতে আরও বেশি ধরণের আছি।

আপনার কি মতামত / মতামত আছে?


ভাল, আপনি লেনদেনের ডিস্ক ক্যাশে দিয়ে উভয়ই করতে পারেন ।
লিলিথ নদী

উত্তর:


350

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

কয়েকটি সমস্যা আছে:

  • ডাটাবেস স্টোরেজ সাধারণত ফাইল সিস্টেম স্টোরেজের চেয়ে বেশি ব্যয়বহুল
  • আপনি শেল্ফ পণ্যগুলির বাইরে স্ট্যান্ডার্ড ফাইল সিস্টেম অ্যাক্সেসকে তীব্র করতে পারেন
    • উদাহরণস্বরূপ, অনেক ওয়েব সার্ভার অপারেটিং সিস্টেমের সেন্ডফিল () সিস্টেম কলটি অ্যাসিঙ্ক্রোনালিভাবে সরাসরি ফাইল সিস্টেম থেকে নেটওয়ার্ক ইন্টারফেসে একটি ফাইল প্রেরণে কল করে। একটি ডাটাবেসে সঞ্চিত চিত্রগুলি এই অপ্টিমাইজেশান থেকে উপকৃত হয় না।
  • ওয়েব সার্ভার ইত্যাদির মতো জিনিসগুলিতে ফাইল সিস্টেমে চিত্রগুলি অ্যাক্সেস করার জন্য কোনও বিশেষ কোডিং বা প্রসেসিংয়ের প্রয়োজন হয় না
  • চিত্র এবং মেটাডেটার মধ্যে লেনদেনের অখণ্ডতা গুরুত্বপূর্ণ যেখানে ডাটাবেসগুলি জিতেছে।
    • ডিবি মেটাডেটা এবং ফাইল সিস্টেম ডেটার মধ্যে অখণ্ডতা পরিচালনা করা আরও জটিল
    • ফাইল সিস্টেমে ডেটা ফ্ল্যাশ করা হয়েছে তার গ্যারান্টি দেওয়া (একটি ওয়েব অ্যাপ্লিকেশন প্রসঙ্গে) কঠিন is

33
"সুপার-এক্সিলিটারিং" ফাইল সিস্টেমের জন্য কী শেল্ফ পণ্যগুলি পাওয়া যায়?
আন্দ্রে রেনিয়া 10

22
আমি কেবল 3TB ফাইল পরিচালনা করি তবে আমি অবশ্যই তাতে সম্মত হই। ডাটাবেসগুলি স্ট্রাকচার্ড ডেটার জন্য, ব্লবগুলি নয়।
ডার্বার্ট

7
@डरবার্ট: ঠিক তাই, আপনি যদি কোনও শর্ত হিসাবে বা যোগদানের জন্য কোনও ক্যোয়ারিতে কোনও ডেটা উপাদান ব্যবহার না করেন তবে এটি সম্ভবত ডাটাবেসের সাথে সম্পর্কিত নয়। তারপরেও, যদি আপনার মতামতের জন্য ছবিগুলির অনুসন্ধানের জন্য একটি দুর্দান্ত ডাটাবেস ফাংশন থাকে ...
নিলস ওয়েইনান্ডার

14
"সুপার-এক্সিলিটারিং" ফাইল সিস্টেমের জন্য কী শেল্ফ পণ্যগুলি পাওয়া যায়?
ablmf

5
পুনরায়: "সুপার-এক্সিলিটারিং" পণ্য: বেশিরভাগ ওয়েব সার্ভার ক্লায়েন্টকে অবিচ্ছিন্নভাবে স্থিতিশীল ফাইলগুলি সরবরাহ করতে প্রেরণ ফাইল () সিস্টেম কলের সুবিধা নিতে পারে। এটি অপারেটিং সিস্টেমে ফাইলটিকে ডিস্ক থেকে নেটওয়ার্ক ইন্টারফেসে স্থানান্তরিত করার কাজটি আপলোড করে। ওএস কর্নেল স্পেসে অপারেটিং করে আরও বেশি দক্ষতার সাথে এটি করতে পারে। এটি আমার কাছে মনে হয় ফাইল সিস্টেম বনাম ডিবি ছবি সংরক্ষণে / পরিবেশনের জন্য এক বড় জয়ের মতো।
অ্যালান ডোনেলি

140

বেশিরভাগ ইস্যুগুলির মতো, এটি যতটা সহজ শোনাচ্ছে তেমন সহজ নয়। এমন অনেকগুলি ক্ষেত্রে রয়েছে যেগুলি ডেটাবেজে চিত্রগুলি সংরক্ষণ করার জন্য এটি বোধগম্য হবে।

  • আপনি গতিশীলভাবে পরিবর্তিত হওয়া চিত্রগুলি সংরক্ষণ করছেন, চালানগুলি বলুন এবং আপনি 1 জানুয়ারী 2007 এ যেমন একটি চালান পেতে চেয়েছিলেন?
  • সরকার আপনার 6 বছরের ইতিহাস বজায় রাখতে চায়
  • ডাটাবেসে সঞ্চিত চিত্রগুলির জন্য আলাদা ব্যাকআপ কৌশল প্রয়োজন হয় না। ফাইল সিস্টেমে সংরক্ষিত চিত্রগুলি করে
  • চিত্রগুলি কোনও ডাটাবেজে থাকলে অ্যাক্সেস নিয়ন্ত্রণ করা আরও সহজ। নিষ্ক্রিয় প্রশাসকরা ডিস্কের যে কোনও ফোল্ডারে অ্যাক্সেস করতে পারবেন। চিত্রগুলি বের করতে কোনও ডাটাবেসে স্নুপিং করতে সত্যই নির্ধারিত প্রশাসক লাগে takes

অন্যদিকে যুক্ত সমস্যা আছে

  • চিত্রগুলি নিষ্কাশন করতে এবং স্ট্রিম করতে অতিরিক্ত কোডের প্রয়োজন
  • দেরী সরাসরি ফাইল অ্যাক্সেসের চেয়ে ধীর হতে পারে
  • ডাটাবেস সার্ভারে ভারী ভার

2
আপনি যখন ভিত্তিতে ইনস্টল করা অ্যাপ্লিকেশনগুলি (শেয়ার পয়েন্টের মতো) লিখছেন তখন একটি পৃথক ব্যাকআপ কৌশল না রাখা একটি বড় বিষয় হতে পারে। আপনি যখন একটি শেয়ার পয়েন্ট ব্যাকআপ তৈরি করেন তখন সমস্ত কিছু ডিবিতে থাকে যা এটি খুব সহজ করে তোলে।
এরিক শুনোভার 23

44
অস্পষ্টতার দ্বারা সুরক্ষা আসলে কোনও অ্যাক্সেস নিয়ন্ত্রণ কৌশল নয়!
জন কেজ

5
আমি মনে করি না যে তিনি অস্পষ্টতার দ্বারা সুরক্ষার পক্ষে ছিলেন - তিনি বলছেন যে ডিবিতে ছবি রাখলে সুরক্ষার আরও একটি স্তর যুক্ত হয় adds (আমি মনে করি ... @ কনরাড, আপনার মুখে শব্দ রাখতে চান না)
এজে।

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

আপনি কি সুযোগক্রমে , আপনার এসকিউএল-> ডিস্ক চিত্রের ক্যাচিং পরিচালনা করতে ইমেজআরাইজিং . নেট লাইব্রেরিটি ব্যবহার করছেন ? এটি আপনি পেতে পারেন এটি সবচেয়ে উন্নত, স্কেলেবল এবং শক্তিশালী ডিস্ক ক্যাশে ...
লিলিথ রিভার

99

ফাইলের দোকান। ফেসবুক ইঞ্জিনিয়ারদের এটি নিয়ে দুর্দান্ত কথা হয়েছিল। একবার হ'ল ডিরেক্টরিতে থাকা ফাইলগুলির ব্যবহারিক সীমাটি জানা ছিল।

একটি খড়ের ছিদ্রে নিখরচায়: কোটি কোটি ফটোতে কার্যকর স্টোরেজ


ext3 এর dir_index অনেক সাহায্য করে।
Seun Osewa

56

এটি কিছুটা লম্বা শট হতে পারে তবে আপনি যদি এসকিউএল সার্ভার ২০০ ব্যবহার করে (বা ব্যবহারের পরিকল্পনা করছেন) তবে আমি নতুন ফাইল স্ট্রিমের ডেটা টাইপের দিকে নজর দেওয়ার পরামর্শ দেব ।

ফাইল স্ট্রিম ডিবিতে ফাইলগুলি সংরক্ষণের প্রায় বেশিরভাগ সমস্যার সমাধান করে:

  1. ব্লবগুলি আসলে একটি ফোল্ডারে ফাইল হিসাবে সংরক্ষণ করা হয়।
  2. ডাটাবেস সংযোগ বা ফাইল সিস্টেমের মাধ্যমে ব্লবগুলি অ্যাক্সেস করা যায়
  3. ব্যাকআপগুলি একীভূত হয়।
  4. মাইগ্রেশন "শুধু কাজ করে"।

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

এমএসডিএন নিবন্ধ থেকে:

লেনদেন-এসকিউএল স্টেটমেন্টগুলি সন্নিবেশ, আপডেট, ক্যোয়ারী, অনুসন্ধান এবং FILESTREAM ডেটা ব্যাক আপ করতে পারে। উইন 32 ফাইল সিস্টেম ইন্টারফেসগুলি ডেটাতে স্ট্রিমিং অ্যাক্সেস সরবরাহ করে।
FILESTREAM ফাইলের ডেটা ক্যাশে করার জন্য এনটি সিস্টেম ক্যাশে ব্যবহার করে। এটি FILESTREAM ডেটাতে ডেটাবেস ইঞ্জিনের কার্য সম্পাদনে যে প্রভাব থাকতে পারে তা হ্রাস করতে সহায়তা করে। এসকিউএল সার্ভার বাফার পুল ব্যবহৃত হয় না; অতএব, এই মেমরিটি ক্যোয়ারী প্রসেসিংয়ের জন্য উপলব্ধ।


ফাইল স্ট্রিমের জন্য +1। এটি প্রকৃতপক্ষে ব্লকগুলি ডিস্কে ফাইল হিসাবে সংরক্ষণ করে, তবে সেগুলি লেনদেনের মাধ্যমে পরিচালনা করে।
জন গিয়েজেন

এছাড়াও, এসকিউএল সার্ভারটি ফাইল স্ট্রিম ব্লবগুলি সরাসরি ডিস্কের বাইরে প্রবেশের অনুমতি দেয়, যাতে আপনি ডিবি সংযোগটি বেঁধে রাখতে এড়াতে পারেন
জন গিয়েটেন

তবুও, ডিবি এবং ওয়েব সার্ভারের মধ্যে প্রচ্ছন্নতা যুক্ত করা হয়েছে ... এবং আপনি ডিস্ক ক্যাচিং ব্যবহার না করে, ওয়েব সার্ভারটিকে ডিস্ক থেকে স্ট্রিম চালাতে সক্ষম না হয়ে ক্লায়েন্টের কাছে স্ট্রিম করার জন্য এটিকে মেমরিতে লোড করতে হবে।
লিলিথ নদী

39

ডিবিতে ফাইলের পাথগুলি অবশ্যই যাওয়ার উপায় - আমি ছবিগুলির টিবি সহ গ্রাহকদের কাছ থেকে গল্প শুনেছি গল্পটি শুনেছি যে এটি কোনও দুঃস্বপ্ন হয়ে যায় যে কোনও ডিবিতে কোনও উল্লেখযোগ্য পরিমাণে চিত্র সঞ্চয় করার চেষ্টা করে - একা অভিনয়টি খুব বেশি হয়।


35

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


সত্যিই খুব সুন্দর. আপনার ব্যবহারকারীরা এখন সহজেই অন্য ফাইলগুলি অ্যাক্সেস করতে আপনার ফাইলের নাম
বাড়িয়ে তুলতে পারেন

6
@ মারিজন: আপনি যদি চিত্রগুলি বিশ্বের কাছে প্রকাশ করেন তবেই এটি সম্ভব।
Seun Osewa

আমরা আমাদের চিত্রযুক্ত নথিগুলির সাথে খুব অনুরূপ কিছু করেছি (আমাদের প্রাথমিক কীটি তিনটি আইটেমের একটি সমন্বিত কী)) তবে আমরা নথিটি স্ক্যান করার তারিখ এবং সময় যুক্ত করেছি যাতে আমাদের একই ডিরেক্টরিতে একাধিক সংস্করণ থাকতে পারে।
অ্যান্ড্রু নিলি

@ ওসওয়া, কেমন আছে? হ্যাঁ, সরাসরি ফাইলটি অ্যাক্সেস করতে, শেষ ব্যবহারকারীর ফোল্ডারে অ্যাক্সেস প্রয়োজন। আপনার অনুরোধের ভিত্তিতে এফটিপি এর মাধ্যমে ফাইলটি সরবরাহ করার প্রক্রিয়া থাকতে পারে এবং সুরক্ষাটি এসকিউএল সার্ভারের সাথে সমান হবে।
অ্যান্ড্রু নীলি

31

এখানে কৌশলটি একজন উদ্যোগী না হওয়া।

এখানে একটি বিষয় লক্ষণীয় যে প্রো ফাইল সিস্টেম ক্যাম্পের মধ্যে কেউই একটি নির্দিষ্ট ফাইল সিস্টেম তালিকাভুক্ত করেনি। এর অর্থ কি এফএটি 16 থেকে জেডএফএস পর্যন্ত প্রত্যেকটি ডাটাবেস হ্যান্ডলি মারে?

না।

সত্যটি হ'ল অনেক ডাটাবেস অনেকগুলি ফাইল সিস্টেমকে পরাজিত করে, এমনকি যখন আমরা কেবল কাঁচা গতির কথা বলি।

কর্মের সঠিক কোর্সটি হল আপনার সুনির্দিষ্ট দৃশ্যের জন্য সঠিক সিদ্ধান্ত নেওয়া এবং এটি করার জন্য আপনার কয়েকটি নম্বর এবং কিছু ব্যবহারের ক্ষেত্রে প্রাক্কলন প্রয়োজন।


6
আমি কেউ দাবি করে দেখছি না যে একটি ফাইলসিস্টেমি সময়ের 100% সময়ের একটি ডিবির চেয়ে দ্রুত (মার্ক হ্যারিসনের উত্তর পড়ুন)। এ তো খানিকটা স্ট্রোম্যান। সম্ভবত এমন পরিস্থিতি রয়েছে যেখানে আপনার সিটবেল্ট না পরা ভাল , তবে সাধারণভাবে বলতে গেলে সিটবেল্ট পরা ভাল ধারণা।
ক্যালভিন

30

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

আপনি লেনদেনের গ্যারান্টি দিতে পারবেন না যে ডাটাবেসে সঞ্চিত সেই চিত্রটি সম্পর্কিত চিত্র এবং মেটা-ডেটা একই ফাইলটিকে বোঝায়। অন্য কথায়, গ্যারান্টি দেওয়া অসম্ভব যে ফাইল সিস্টেমের ফাইলটি কেবল একই সময়ে এবং মেটাডেটার মতো একই লেনদেনে পরিবর্তিত হয়।


7
আসলে, না, আপনি পারেন। যতক্ষণ ইমেজ ফাইলগুলি মুছে ফেলা হয় না, পরিবর্তিত হয় বা একবারে ওভার-লিখিত একবার তৈরি করা হয় ততক্ষণ, সমস্ত চিত্র ফাইলগুলি লেনদেনের প্রতিশ্রুতি দেওয়ার আগে সিঙ্ক করা হয়, কোনও ফাইল সিস্টেমের দুর্নীতি নেই, আপনি নিশ্চিত হতে পারেন যে চিত্র ফাইল এবং মেটাডেটা সিঙ্কে রয়েছে। কিছু অ্যাপ্লিকেশনগুলির জন্য, সেগুলি অনেকগুলি আইএফ, আমার ধারণা।
Seun Osewa

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

28

অন্যরা যেমন বলেছে যে এসকিউএল ২০০৮ একটি ফাইল স্ট্রিম টাইপ নিয়ে আসে যা আপনাকে একটি ফাইলের নাম বা সনাক্তকারীকে ডিবিতে পয়েন্টার হিসাবে সঞ্চয় করতে দেয় এবং স্বয়ংক্রিয়ভাবে আপনার ফাইল সিস্টেমে চিত্রটি সঞ্চয় করে যা একটি দুর্দান্ত দৃশ্য।

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

আপনি কেবল ফাইল সিস্টেমে স্থান বাঁচাতে পারেন, কারণ আপনি কেবলমাত্র ফাইল সিস্টেমের মধ্যে ঠিক পরিমাণের পরিমাণ বা কমপ্যাক্ট স্পেস সংরক্ষণ করতে যাচ্ছেন।

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

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


27

ছোট স্ট্যাটিক চিত্রগুলি (বেশ কয়েকটি মেগের বেশি নয়) যা প্রায়শই সম্পাদিত হয় না, তা ডাটাবেসে সংরক্ষণ করা উচিত। এই পদ্ধতিতে সহজ বহনযোগ্যতা (চিত্রগুলি ডাটাবেসের সাথে স্থানান্তরিত করা হয়), সহজ ব্যাকআপ / পুনরুদ্ধার (চিত্রগুলি ডাটাবেসের সাহায্যে ব্যাক আপ করা হয়) এবং আরও ভাল স্কেলেবিলিটি (হাজার হাজার ছোট থাম্বনেইল ফাইল সহ একটি ফাইল সিস্টেম ফোল্ডার এটিকে স্কেলিবিলিটি দুঃস্বপ্নের মতো মনে হয়) আমাকে).

একটি ডাটাবেস থেকে চিত্রগুলি পরিবেশন করা সহজ, কেবল একটি HTTP হ্যান্ডলার বাস্তবায়ন করুন যা বাইনারি স্ট্রিম হিসাবে ডিবি সার্ভার থেকে ফিরে আসা বাইট অ্যারে পরিবেশন করে।


আমি যুক্তি দিয়ে বলব যে ঘন ঘন সম্পাদনা করা ফাইলগুলির জন্য ডাটাবেসই ভাল, যেহেতু ধারাবাহিকতা সেই ক্ষেত্রে সমস্যা হতে পারে।
Seun Osewa

26

এখানে বিষয়ের একটি আকর্ষণীয় সাদা কাগজ paper

ব্লগ করতে বা না করতে ব্লগ করতে: একটি ডাটাবেস বা একটি ফাইল সিস্টেমে বড় অবজেক্ট স্টোরেজ

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

ছোট আকারের ফাইলগুলি স্টোরেজ প্রক্রিয়া হিসাবে ডেটাবেস ব্যবহার করে দক্ষতার সাথে সঞ্চয় করা এবং বিতরণ করা যেতে পারে। বড় ফাইলগুলি সম্ভবত ফাইল সিস্টেমটি ব্যবহার করে সবচেয়ে ভাল সঞ্চয় করা হবে, বিশেষত যদি সেগুলি প্রায়শই পরিবর্তন / আপডেট করা হয়। (ব্লব টুকরা পারফরম্যান্সের ক্ষেত্রে একটি ইস্যু হয়ে ওঠে।)

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


25

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

এর সাধারণ সমাধান হ'ল এগুলি হ'ল সাব ডাইরেক্টরিগুলির সুষম গাছগুলিতে নিয়ে যাওয়া।


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

1
বড় ডিরেক্টরিতে কোনও সমস্যা নেই এমন একটি ফাইল সিস্টেম ব্যবহার করা আরও ভাল
Seun Osewa

8
আমার কাছে একটি ডিরেক্টরিতে একটি লক্ষ লক্ষ ফাইলের সাথে একটি অ্যাপ্লিকেশন ছিল (সার্ভারটি আরএইচইল 4 চলছে) - এমনকি ডিরেক্টরি সামগ্রীর তালিকা করতে (কোনও ফাইলে পাইপিং করা) বেশ কয়েকদিন সময় নেয় এবং 100 এমবি আকারের একটি আউটপুট ফাইল তৈরি করে। এখন তারা একটি ডাটাবেসে রয়েছে আমার একটি একক ফাইল রয়েছে যা আমি খুব সহজেই সরিয়ে নিতে বা ব্যাকআপ নিতে পারি।
রিচার্ড

1
@ শিউন ওসোয়া: প্রতিটি ফাইল সিস্টেমের সীমাবদ্ধতা রয়েছে ... এবং যদি আপনি যদি এমন কোনও একটি সম্পর্কে জানেন যে একই ডিরেক্টরিতে কয়েক মিলিয়ন এন্ট্রি সংরক্ষণের ক্ষেত্রে সমস্যা নেই, তবে দয়া করে আমাকে জানান!
গিলাইম

1
@ শিউন ওসোয়া: 5.4 এম রেকর্ড সহ ডেটাবেস এখন 28 গিগাবাইট পর্যন্ত। আমি ডাটাবেস টেবিলটি বিভাজন করে শেষ করেছি যাতে আমার কাছে বেশ কয়েকটি ফাইল রয়েছে যা প্রায় 5 গিগাবাইট আকারের back )
রিচার্ড

22

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

যদি আপনার ছবিগুলি কোনও ফাইল-সিস্টেমে থাকে এবং কেউ যদি নতুন সংস্করণ লিখছেন বা এমনকী ফাইলটি মোছার কারণেও ফাইলটি পড়ছেন - তবে কি হবে?

আমরা ব্লবগুলি ব্যবহার করি কারণ এগুলি পরিচালনা করতেও খুব সহজ (ব্যাকআপ, প্রতিলিপি, স্থানান্তর)। তারা আমাদের জন্য ভাল কাজ।


নির্দিষ্ট চিত্রটিতে দুটি যুগপত আপডেট হওয়ার সম্ভাবনা কী?
আরাফাঙ্গিয়ন

1
সমস্যাগুলির জন্য আপনার একসাথে আপডেটের প্রয়োজন নেই - এটি একটি পঠন এবং লেখার হতে পারে। আমাদের ক্ষেত্রে এটি প্রায় গ্যারান্টিযুক্ত।
ড্রিমন

20

একটি ডাটাবেসে চিত্রগুলিতে কেবল ফাইলপথগুলি সঞ্চয় করার সমস্যাটি হ'ল ডাটাবেসের সততা আর জোর করা যায় না।

যদি ফাইলপথের দ্বারা নির্দেশিত প্রকৃত চিত্রটি অনুপলব্ধ হয়ে যায়, অজান্তেই ডাটাবেসটির অখণ্ডতা ত্রুটি রয়েছে।

চিত্রগুলি হ'ল প্রকৃত ডেটা যাচাই করা হচ্ছে এবং কোনও একধরণের ফাইল সিস্টেমের সাথে ইন্টারফেস করার পরিবর্তে (চিত্রগুলি হ'ল চিত্রগুলি হঠাৎ অদৃশ্য হবে না) সহজেই পরিচালিত হতে পারে (যদি ফাইল সিস্টেমটি স্বাধীনভাবে অ্যাক্সেস করা থাকে, চিত্রগুলি হঠাৎ করেই "অদৃশ্য হয়ে যাবে"), আমি এগুলি সরাসরি একটি ব্লগ বা এ জাতীয় হিসাবে সঞ্চয় করতে যাব।


17

এমন একটি সংস্থায় যেখানে আমি কাজ করতাম আমরা একটি ওরাকল 8 আই (তখন 9 আই) ডাটাবেসে 155 মিলিয়ন ইমেজ সংরক্ষণ করি stored 7.5TB মূল্য।


5
একেবারে। স্পষ্টতই এখন ডেটাবেস অনেক বড়। একটি ডাটাবেসে ডেটা থাকা মানে বিভিন্ন সাইটে ডাটাবেসের অনুলিপি করা খুব সহজ is
গ্রাহাম.রিডস

আমি ওরাকলের একটি প্রদর্শনী দেখেছি যেখানে ডাটাবেজে কোনও ফাইল সিস্টেম মাউন্ট করতে পারে বা এটির মতো অন্য কিছু। আপনি কি জানেন যে এটি যদি আপনি এটি করেন তবে কি হয়? (দুঃখিত, আমি ওরাকল সম্পর্কে নিখুঁত তাই সম্ভবত আমি আবর্জনা কথা বলছি।)
স্টু থম্পসন

আমি এটি মনে করি না - এটি ডেটাবেস হিসাবে ডাটাবেসে চিত্রগুলি সংরক্ষণ করছিল। ডেটাবেস আক্রমণাত্মকভাবে সুর করা হয়েছিল - আমি মনে করি ক্ষেত্রগুলি যুক্ত এবং সরানো হওয়ায় চিত্রগুলির আকারের বিষয়ে একাধিক আলোচনা। সবকিছু সীমাবদ্ধ ছিল।
গ্রাহাম.রিডস

14

সাধারণত, আমি আপনার অবকাঠামো (ডাটাবেস) এর অংশটি স্কেল করতে সবচেয়ে ব্যয়বহুল এবং কঠিনতম গ্রহণ এবং এর মধ্যে সমস্ত বোঝা againstোকানোর বিরুদ্ধে দৃor়ভাবে আছি। অন্যদিকে: এটি ব্যাকআপ কৌশলটি সহজতর করে, বিশেষত যখন আপনার একাধিক ওয়েব সার্ভার থাকে এবং কোনও উপায়ে ডেটা সিঙ্ক্রোনাইজ করা প্রয়োজন need

অন্যান্য জিনিসগুলির মতো এটিও প্রত্যাশিত আকার এবং বাজেটের উপর নির্ভর করে।


13

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

আমরা ফলাফলগুলি নিয়ে খুব সন্তুষ্ট হয়েছি, বিশেষত:

  1. অনুলিপি এবং ব্যাকআপ সহজ
  2. সহজেই একটি দস্তাবেজ সংস্করণ সিস্টেম প্রয়োগ করার ক্ষমতা

11

যদি এটি ওয়েব-ভিত্তিক অ্যাপ্লিকেশন হয় তবে তৃতীয় পক্ষের স্টোরেজ বিতরণ নেটওয়ার্কে যেমন অ্যামাজনের এস 3 বা নির্ভানিক্স প্ল্যাটফর্মে চিত্রগুলি সংরক্ষণ করার সুবিধা থাকতে পারে।


11

অনুমান: অ্যাপ্লিকেশনটি ওয়েব সক্ষম / ওয়েব ভিত্তিক

আমি আশ্চর্য হয়েছি কেউই এটির সত্যই উল্লেখ করেনি ... বিশেষজ্ঞরা অন্যদের কাছে এটি অর্পণ করুন -> একটি তৃতীয় পক্ষের চিত্র / ফাইল হোস্টিং সরবরাহকারী ব্যবহার করুন

আপনার ফাইলগুলিকে কোনও প্রদত্ত অনলাইন পরিষেবাতে সঞ্চয় করুন

আরেকটি স্ট্যাকওভারফ্লো থ্রেড এখানে এ সম্পর্কে কথা বলছে ।

এই থ্রেডটি ব্যাখ্যা করে যে আপনার তৃতীয় পক্ষের হোস্টিং সরবরাহকারী কেন ব্যবহার করা উচিত।

এটা এত মূল্য। তারা এটি দক্ষতার সাথে সঞ্চয় করে। আপনার সার্ভার থেকে ক্লায়েন্টের অনুরোধ ইত্যাদিতে কোনও ব্যান্ডউইড আপলোড হচ্ছে না etc.


10

আপনি যদি এসকিউএল সার্ভার ২০০৮ এ না থাকেন এবং ডাটাবেসে নির্দিষ্ট চিত্র ফাইল রাখার কিছু দৃ reasons় কারণ থাকে তবে আপনি "উভয়" পদ্ধতির গ্রহণ করতে পারেন এবং ফাইল সিস্টেমটিকে অস্থায়ী ক্যাশে হিসাবে ব্যবহার করতে পারেন এবং ডাটাবেসটিকে মাস্টার সংগ্রহস্থল হিসাবে ব্যবহার করতে পারেন ।

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


+1 এটি আপনাকে আকার / সংকোচনের পরে পরিবর্তিত হতে দেওয়ার সময় ক্যাশেড / অপ্টিমাইজড সংস্করণ সরবরাহ করে আসল চিত্রটি সঞ্চয় করতে দেয়
ডিবেস্টার

7

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

এই চিত্র গ্রন্থাগারের মূল স্রষ্টা একটি ডেটা অ্যাক্সেস ক্লাস তৈরি করেছিলেন যা অনুরোধের ভিত্তিতে চিত্রটিকে রেন্ডার করে এবং এটি দেখার এবং স্বতন্ত্র কার্ডের জন্য এটি বেশ দ্রুত করে।

এটি নতুন কার্ডগুলি প্রকাশের সময় স্থাপনা / আপডেটগুলিকে সহজ করে দেয়, চিত্রগুলির পুরো ফোল্ডারটি জিপ করে এবং পাইপগুলির নীচে প্রেরণ না করে এবং সঠিক ফোল্ডার কাঠামোটি তৈরি হয় তা নিশ্চিত করার পরিবর্তে, আমি কেবল ডাটাবেস আপডেট করি এবং ব্যবহারকারীকে আবার ডাউনলোড করতে পারি have বর্তমানে এটি 56MB অবধি মাপসই, যা দুর্দান্ত নয় তবে আমি ভবিষ্যতের প্রকাশের জন্য বর্ধিত আপডেট বৈশিষ্ট্যে কাজ করছি। এছাড়াও, অ্যাপ্লিকেশনটির একটি "কোনও চিত্র নেই" সংস্করণ রয়েছে যা ডায়াল-আপগুলি তাদের ডাউনলোডের বিলম্ব ছাড়াই অ্যাপ্লিকেশন পেতে দেয়।

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

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


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

7

এসকিউএল সার্ভার ২০০৮ এমন একটি সমাধান দেয় যা উভয় পৃথিবীর মধ্যে সেরা: ফাইল স্ট্রিমের ডেটা টাইপ

এটি নিয়মিত টেবিলের মতো পরিচালনা করুন এবং ফাইল সিস্টেমের কর্মক্ষমতা রাখুন।


7

এটি আপনি যে সমস্ত চিত্র সঞ্চয় করতে যাচ্ছেন তার সংখ্যা এবং তার আকারের উপরও নির্ভর করে। আমি অতীতে চিত্রগুলি সঞ্চয় করতে ডাটাবেস ব্যবহার করেছি এবং আমার অভিজ্ঞতা মোটামুটি ভাল।

আইএমও, চিত্র সংরক্ষণ করার জন্য ডাটাবেস ব্যবহার করার প্রসেস হ'ল

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

যদি আপনার চিত্রগুলি ছোট হতে চলেছে (তবে <<৪ কে বলুন) এবং আপনার ডিবির স্টোরেজ ইঞ্জিনটি ইনলাইন (রেকর্ডে) সমর্থন করে বিএলএলও, কোনও দিকনির্দেশনা প্রয়োজন না হওয়ায় এটি আরও কার্যকারিতা উন্নত করে (স্থানীয়করণের রেফারেন্স অর্জন করা হয়)।

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


7

আমি সম্প্রতি একটি পিএইচপি / মাইএসকিউএল অ্যাপ্লিকেশন তৈরি করেছি যা একটি মাইএসকিউএল টেবিলের মধ্যে পিডিএফ / ওয়ার্ড ফাইল সঞ্চয় করে (এখন পর্যন্ত ফাইলের হিসাবে 40 এমবি হিসাবে বড়)।

পেশাদাররা:

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

কনস:

  • mysqldump এখন একটি খুব দীর্ঘ সময় নেয় কারণ একটি সারণীতে একটিতে 500MB ফাইল ডেটা রয়েছে।
  • ফাইল সিস্টেমের সাথে তুলনা করলে সামগ্রিকভাবে খুব বেশি মেমরি / সিপিইউ দক্ষ হয় না

আমি আমার বাস্তবায়নটিকে একটি সাফল্য বলব, এটি ব্যাকআপের প্রয়োজনীয়তার যত্ন নেয় এবং প্রকল্পের বিন্যাসকে সহজ করে দেয়। অ্যাপ্লিকেশনটি ব্যবহার করে এমন 20-30 লোকের জন্য পারফরম্যান্সটি দুর্দান্ত।


6

আমার অভিজ্ঞতা আমি উভয় পরিস্থিতি পরিচালনা করতে হয়েছিল: ডিবিতে সঞ্চিত পথ সহ ফাইল সিস্টেমে ডেটাবেস এবং চিত্রগুলিতে সঞ্চিত চিত্রগুলি।

প্রথম সমাধান, ডাটাবেসে চিত্রগুলি কিছুটা "ক্লিনার" কারণ আপনার ডেটা অ্যাক্সেস লেয়ারটি কেবল ডাটাবেস অবজেক্টের সাথেই মোকাবেলা করতে হবে; তবে এটি তখনই ভাল যখন আপনার কম সংখ্যার সাথে ডিল করতে হবে।

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

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

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

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


4

আমি একবার একটি ইমেজ প্রসেসিং অ্যাপ্লিকেশন উপর কাজ করেছি। আমরা একটি ডিরেক্টরিতে আপলোড করা চিত্রগুলি সঞ্চয় করেছিলাম যা কিছু কিছু ছিল / চিত্র / [আজকের তারিখ] / [আইডি নম্বর]। তবে আমরা চিত্রগুলি থেকে মেটাডেটা (এক্সিফ ডেটা )ও বের করেছি এবং এটি একটি টাইমস্ট্যাম্প এবং এর সাথে ডেটাবেজে সংরক্ষণ করেছি।


4

পূর্ববর্তী একটি প্রকল্পে আমি ফাইল সিস্টেমে চিত্রগুলি সঞ্চয় করেছিলাম এবং এর ফলে ব্যাকআপ, প্রতিলিপি এবং ফাইল সিস্টেমটি ডাটাবেসের সাথে সিঙ্কের বাইরে চলে যাওয়ার কারণে প্রচুর মাথা ব্যথা করে।

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


3

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

কেবলমাত্র "প্রো" আমি ডিবিতে তাদের সংরক্ষণের বিষয়ে ভাবতে পারি তা হ'ল স্বতন্ত্র চিত্রের সম্পদের সহজ সম্ভাবনা। যদি ব্যবহারের জন্য কোনও ফাইল পাথ না থাকে এবং সমস্ত চিত্র সরাসরি ডিবি থেকে প্রবাহিত হয় তবে কোনও ব্যবহারকারীর এমন ফাইল খুঁজে পাওয়ার কোনও ঝুঁকি নেই যা তাদের অ্যাক্সেস না করে should

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


3

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


3

ডাটাবেসে কোনও চিত্র সঞ্চয় করার অর্থ এখনও ইমেজ ডেটা ফাইল সিস্টেমে কোথাও শেষ হয় তবে অস্পষ্ট হয় যাতে আপনি সরাসরি এটি অ্যাক্সেস করতে পারবেন না।

+ + Ves:

  • ডাটাবেস অখণ্ডতা
  • এটি পরিচালনা করা সহজ যেহেতু আপনাকে যখন কোনও চিত্র যুক্ত করা বা মুছতে হয় তখন ফাইল সিস্টেমকে সিঙ্কে রাখার বিষয়ে আপনাকে চিন্তা করতে হবে না

-ves:

  • পারফরম্যান্স পেনাল্টি - একটি ডাটাবেস অনুসন্ধান সাধারণত ধীর হয় যে কোনও ফাইল সিস্টেমের অনুসন্ধানে
  • আপনি সরাসরি চিত্রটি সম্পাদনা করতে পারবেন না (ক্রপ করুন, পুনরায় আকার দিন)

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

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