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