কোনটি দ্রুত: বড় JSON ডেটাসেটে পোস্টগ্রিজ এসকিউএল বনাম মংগোডিবি?


10

আমার কাছে প্রতি 3। 300 বাইটে 9 মি JSON অবজেক্ট সহ একটি বড় ডেটাসেট রয়েছে। এগুলি লিঙ্ক একগ্রিগেটরের পোস্ট: মূলত লিঙ্কগুলি (একটি ইউআরএল, শিরোনাম এবং লেখক আইডি) এবং মন্তব্যসমূহ (পাঠ্য এবং লেখকের আইডি) + মেটাডেটা।

তারা একটি টেবিলে খুব ভাল সম্পর্কযুক্ত রেকর্ড হতে পারে, আইডি সহ শিশুদের রেকর্ডের দিকে ইঙ্গিত করে তাদের একটি অ্যারে ক্ষেত্র রয়েছে তা বাদে।

কি বাস্তবায়ন আরও দৃ looks় মনে হচ্ছে?

  1. পোস্টগ্রেএসকিউএল ডাটাবেসে জেএসএন অবজেক্টস (এক কলাম সহ কেবলমাত্র একটি বৃহত টেবিল, যথা JSON অবজেক্ট)
  2. একটি মঙ্গোডিবিতে জেএসএন অবজেক্ট
  3. JSON অবজেক্টগুলি কলামগুলিতে বিস্ফোরিত করুন এবং পোস্টগ্রেএসকিউএল এ অ্যারে ব্যবহার করুন

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


স্নোফ্লেকে চেকআউট করতে চাইবে। এটি কাঠামোগত এবং আধা-কাঠামোগত ডেটা একসাথে পরিচালনা করতে পারে। www.snowflake.net

আমি মনে করি আপনাকে "সংযুক্তিতে সর্বাধিক পারফরম্যান্স" বলতে কী বোঝায় তা আপনাকে প্রসারিত করতে হবে। কি যোগ দিচ্ছেন?
স্পেসডম্যান

উত্তর:


10

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

এটি ব্যবহার করে দেখুন ওয়েবসাইট এবং এই আরও তথ্যের জন্য খুব অন্যতম। তাদের খুব বিস্তারিত ব্যাখ্যা রয়েছে।


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

1

আপনি মোংডব এর স্কিমহীন নকশা থেকে আরও বেশি উপকৃত হতে পারেন। এর অর্থ ফ্লাইতে ডেটা স্ট্রাকচার পরিবর্তন করা খুব সহজ।

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

দৃষ্টিভঙ্গি এবং অগ্রাধিকার পরিবর্তনের সাথে সাথে গতি কম গুরুত্বপূর্ণ হয়ে উঠতে পারে।

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

-Todd


সাম্প্রতিকতম
মাপদণ্ডে

@ অ্যানি-মউস: আকর্ষণীয়। আপনি কোন উত্স জানেন?
আইজাক

উদাহরণস্বরূপ tiborsimko.org/postgresql-mongodb-json-select-speed.html এবং enterprisedb.com/postgres-plus-edb-blog/marc-linster/… অন্য উত্তর থেকে। একটি মূল কারণ হ'ল পোস্টগ্রিসের ভাল সূচক রয়েছে, তবে মঙ্গোডিবিতে সূচিগুলি মূল্যবান নয়। তদ্ব্যতীত, পোস্টগ্র্রেস জেএসএন পরিচালনার জন্য বিএসওএন সমর্থন এবং অন্যান্য সংযোজন পেয়েছে, যা পারফরম্যান্সে যথেষ্ট উন্নতি করেছে। এ কারণেই এটি প্রথম সংস্করণগুলির চেয়ে অনেক দ্রুত পেয়েছে।
কিউইট আছে - অ্যানি-মৌসে

0

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

আগে যেমন উত্তর দেওয়া হয়েছে, সাধারণভাবে পোস্টগ্র্যাস্কলটি মঙ্গোর চেয়ে দ্রুত, কিছুগুণ 4 গুণ বেশি দ্রুত। উদাহরণস্বরূপ দেখুন: http://www.enterprisedb.com/postgres-plus-edb-blog/marc-linster/postgres-outperforms-mongodb-and-ushers-new-developer-reality

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

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

আমার পোস্টগ্রিজ ব্যবহার এবং ডেটা দুটি টেবিলের মধ্যে সঞ্চয় করতে হবে:

সারণী পোস্টগুলি তৈরি করুন (পোস্ট_আইডি পূর্ণসংখ্যা, ইউআরএল বার্চর (255), লেখক_ আইডি পূর্ণসংখ্যা);

- ডেটা লোড করুন এবং তারপরে সূচকগুলি তৈরি করুন। - এটি দ্রুততর লোড এবং আরও ভাল সূচকগুলিতে সারণী পোস্টগুলিকে সীমাবদ্ধ পোস্ট_পি কে প্রাথমিক কী (পোস্ট_আইডি) যুক্ত করবে; পোস্টগুলিতে সূচক পোস্ট_অ্যাকর্ড তৈরি করুন (লেখক_আইডি);

সারণী মন্তব্য তৈরি করুন (কমেন্ট_আইডি পূর্ণসংখ্যা, পোস্ট_আইডি পূর্ণসংখ্যা, লেখক_ আইডি পূর্ণসংখ্যা, মন্তব্য বার্তা (255)); টেবিলের মন্তব্যগুলি পরিবর্তন করুন বাধা মন্তব্য_pk প্রাথমিক কী (মন্তব্য_আইডি) যুক্ত করুন; মন্তব্যগুলিতে সূচী মন্তব্য_অর্থার তৈরি করুন (লেখক_আইডি); মন্তব্যগুলিতে সূচক মন্তব্য_পোস্ট তৈরি করুন (পোস্ট_আইডি);

তারপরে আপনি সিলেক্ট এম এর মত প্রশ্নের উপর ভিত্তি করে লেখকের মিলকে গণনা করতে পারবেন। লেখক_আইডিকে এম_অথর_আইডি হিসাবে, ক। a_author_id হিসাবে লেখক_আইডি, মন্তব্য হিসাবে লেখা পোস্ট হিসাবে গণনা (স্বতন্ত্র m.post_id) m.author_id দ্বারা একটি (পোস্ট_আইডি) গ্রুপ হিসাবে ব্যবহার হিসাবে মন্তব্যগুলিতে যোগদান করুন, এ। author_id

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

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