কোন ডিবিএমএস সুপার-ফাস্ট রিডিং এবং একটি সহজ ডেটা স্ট্রাকচারের জন্য ভাল?


16

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

ডাটাবেস সম্পর্কিত তথ্য:

  • স্থিত তথ্যের <100,000 এন্ট্রি
  • পুরো ডাটাবেস বুট পড়ুন, শুধুমাত্র ফাইল পাথ প্রয়োজন
  • সারিবদ্ধ ফাইলগুলির একটি অগ্রাধিকার ক্ষেত্র থাকবে (অন্য কোনও কিছুর দ্বারা অনুসন্ধানের দরকার নেই)
  • সন্নিবেশগুলি ধীর হতে পারে

আমি একটি দু'টি ডাটাবেস পেয়েছি যা আমার মনে হয় কাজ করবে তবে আমি নিশ্চিত নই যে কোনটি সেরা হবে:

  • রিডিস - ফাইল-পাথ কী হিসাবে স্টোর করুন, স্ট্যাটাল ডেটাটিকে মান হিসাবে; সারি একটি তালিকা হবে
  • মঙ্গোডিবি - রেডিসের চেয়ে আরও ক্যোয়ারী বিকল্প, তবে এখনও দ্রুত

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

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

সুতরাং প্রশ্ন, কোন ডাটাবেস এই পরিস্থিতিতে সবচেয়ে কার্যকর হবে?

এছাড়াও, এই জাতীয় অ্যাপ্লিকেশনটির জন্য আরও কি কোনও ডাটাবেস আরও বোধগম্য হয়?

উত্তর:


9

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

সুতরাং, আমার পরামর্শটি এমন একটি ডাটাবেস যা আপনার সাথে পরিচিত with আপনি যদি রেডিস বা মঙ্গোডিবির সাথে পরিচিত হন তবে তার মধ্যে একটির সাথে যান। আপনি যদি এসকিউএলাইটের সাথে আরও পরিচিত হন, তবে এটি বেছে নিন।

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


হ্যাঁ, সেই আকারের একটি ডাটাবেস সম্ভবত সম্পূর্ণরূপে মেমরির বাইরে পরিবেশন করা হবে।
নিক চ্যামাস

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

12

আপনি যদি সম্পর্ক সম্পর্কিত যুক্তির সাথে উদ্বিগ্ন না হন, সত্যিই দ্রুত পড়ার গতি চান এবং আপনি কোনও আরডিবিএমএসের সাথে কাজ করতে ইচ্ছুক হন, আমি মাইএসকিউএল বলতে পূর্বঘোষিত উদ্যোগ নেব। কেন ???

মাইআইএসএএম স্টোরেজ ইঞ্জিনটিতে একটি বিকল্প রয়েছে যা আরও ভাল পারফরম্যান্সের জন্য সারণীর শারীরিক কাঠামোকে বাড়ানোর অনুমতি দিতে পারে। সেই বিকল্পটি কী? ALTER TABLE অপশনটি ROW_FORMAT।

উদাহরণস্বরূপ, মাইএসকিউএল ডেটাবেস ডিজাইন এবং টিউনিং বইটি OW২,,। পৃষ্ঠায় ROW_FORMAT = FIXED ব্যবহার করার পরামর্শ দেয়। এটি অভ্যন্তরীণভাবে সমস্ত ভ্রচার ক্ষেত্রকে CHAR এ রূপান্তর করবে। এটি মাইআইএসএএম টেবিলটিকে আরও বড় করে তুলবে, তবে এর বিপরীতে চালিত SELECT গুলি আরও দ্রুত হবে। আমি ব্যক্তিগতভাবে এটি প্রমাণ করতে পারি। আমার একবার টেবিল ছিল যা ছিল 1.9 জিবি। আমি ALTER TABLE tblname ROW_FORMAT = FIXED দিয়ে ফর্ম্যাটটি পরিবর্তন করেছি। টেবিলটি শেষ হয়েছে 3.7 গিগাবাইট। এর বিপরীতে SELECT গুলির গতি 20-25% বেশি ছিল অন্য কিছু উন্নতি বা পরিবর্তন না করেই।

আপনার যদি ইতিমধ্যে একটি মাইআইএসএএম টেবিল থাকে যা ডেটা দিয়ে জনিত হয়? আপনি মাইআইএসএএম টেবিলের উপাত্তের ভিত্তিতে প্রস্তাবিত কলাম সংজ্ঞাগুলির জন্য মেট্রিকগুলি পেতে পারেন। কী ক্যোয়ারী সেই মেট্রিকগুলি উপস্থাপন করে?

SELECT * FROM tblname PROCEDURE ANALYSE();

প্রক্রিয়া বিশ্লেষণ () এটি ডেটা প্রদর্শন করবে না। এটি প্রতিটি কলামের মান পড়বে এবং কলাম সংজ্ঞা প্রস্তাব করবে। উদাহরণস্বরূপ, আপনার যদি এমন টাইপ কলাম থাকে যার মানগুলি 1-4 হয়, তবে 4 টি মানগুলির একটি ENUM ব্যবহার করে এটি সুপারিশ করবে। তারপরে আপনি TINYINT বা CHAR (1) ব্যবহার করতে বেছে নিতে পারেন যেহেতু তারা একই পরিমাণে জায়গা (1 বাইট) নেয়।

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

CREATE TABLE customer_mileage_details
(
    customer_id INT NOT NULL,
    ff_number CHAR(10) NOT NULL,
    transaction_date DATE NOT NULL,
    mileage SMALLINT NOT NULL,
    INSERT(customer_id),
    INSERT (ff_number,transaction_date)
) ENGINE = MYISAM;

এই টেবিলটিতে কয়েক মিলিয়ন সারি রয়েছে। মনে করুন যে আপনার একটি ডেটা বিশ্লেষণ অ্যাপ্লিকেশন তৈরি করতে হবে যার নিম্নলিখিত প্রয়োজনীয়তা রয়েছে:

  • এটি যত তাড়াতাড়ি সম্ভব তথ্যগুলির ব্লকগুলি পুনরুদ্ধার করা দরকার।
  • ব্যবহারকারীর ইনপুট বা অন্যান্য কারণের উপর ভিত্তি করে এটি সম্ভবত সারণীতে "লাফিয়ে" যাবে "
  • এটি সম্মতি বা অন্যান্য ডেটা অখণ্ডতার সাথে সম্পর্কিত নয়।
  • ক্রস-অ্যাপ্লিকেশন টেবিল লকিংয়ের প্রয়োজন নেই।

এই কমান্ডগুলি টেবিল থেকে দ্রুত এবং ময়লা পড়ার অনুমতি দেয়:

HANDLER customer_mileage_details OPEN;
HANDLER customer_mileage_details READ ff_number FIRST WHERE ff_number=('aaetm-4441');
HANDLER customer_mileage_details READ NEXT LIMT 10;
HANDLER customer_mileage_details CLOSE;

আমি আশা করি এটি চিন্তার জন্য খাদ্য দেবে। দয়া করে এটি দেখুন।

বিচারকার্য স্থগিত রাখার আদেশ

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


1
মাইএসকিউএলকে নোএসকিউএল ডাটাবেস হিসাবে ব্যবহার করার বিষয়ে আকর্ষণীয় বিষয়, তবে রেডিস বা মঙ্গোডিবি-র মতো ব্যবহার করে এটি আমাকে কী কিনবে?
বেটগ্যামিট

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

হাই @ রোল্যান্ডো মাইএসকিউএলডিবিএ, আমি HANDLERকাঠামো এবং দক্ষতা সম্পর্কে আরও তথ্যের সন্ধান করছি, মাইএসকিএল-এর ম্যান পেজটিই আমি খুঁজে পেতে সক্ষম হয়েছি এমন একক পৃষ্ঠা, এবং সেখানে খুব বেশি কিছু নেই ... আমি এটিকে একটি হিসাবে জিজ্ঞাসা করেছি এখানে নতুন প্রশ্ন: dba.stackexchange.com/q/253653/23271 এবং আশা করছেন যে আপনি অতিরিক্ত সংস্থান সম্পর্কে জানেন?
আউসিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.