PostgreSQL টেবিলের জন্য কত বড়?


127

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

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

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


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

1
সম্পর্কিত প্রশ্ন এখানে এবং এখানে
এরউইন ব্র্যান্ডস্টেটার

5
আমরা এক 5+ টিবি পোস্টগ্রিএসকিউএল ডাটাবেসে প্রতিদিন প্রায় 30 মিলিয়ন বার্তা প্রসেস করি, দুর্দান্ত কাজ করে।
ফ্রাঙ্ক হিকেনস


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

উত্তর:


115

একটি টেবিল প্রতি সারি নিজস্ব এটি কোনও সমস্যা হবে না।

প্রায় 90 মিলিয়ন দিনে এক মিলিয়ন সারিতে কথা বললে 90 মিলিয়ন সারি হয়। আপনি যা করছেন তার সমস্ত বিশদ না জেনে পোস্টগ্র্রেস এর সাথে কাজ করতে পারে না এমন কোনও কারণ আমি দেখতে পাচ্ছি।

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

select x,1 as c2,2 as c3
from generate_series(1,90000000) x;

https://wiki.postgresql.org/wiki/FAQ

Limit   Value
Maximum Database Size       Unlimited
Maximum Table Size          32 TB
Maximum Row Size            1.6 TB
Maximum Field Size          1 GB
Maximum Rows per Table      Unlimited
Maximum Columns per Table   250 - 1600 depending on column types
Maximum Indexes per Table   Unlimited

19
আমি সম্মত হই যে 90 মিলিয়ন সারি পোস্টগ্র্রেএসকিউএল-এর জন্য সমস্যা হবে না। তবে পোস্টগ্রিএসকিউএল সহ কোনও ওআরএমের জন্য এটি সমস্যা হতে পারে। (যে কোনও ডিবিএমএস সহ একটি ওআরএম, আসলে।)
মাইক শেরিল 'ক্যাট রিকল'

@ মাইকশেরিল'ক্যাটকেল 'ভাল কথা, আমি কেবল "পোস্টগ্র্রেএসকিউএল টেবিলের জন্য কতটা বড়?"
কুবেরচাঁন

2
@ অ্যায়িও: কারণ ওআরএমগুলি সাধারণত এক বা দুটি দিয়ে ফেরত যেতে পারে এমন ডেটা পেতে প্রচুর প্রশ্ন ব্যবহার করে । ওপি রুবি অন রেল ব্যবহার করছে।
মাইক শেরিল 'ক্যাট রিকল'

39
এটি একটু দেরিতে হলেও আমি মনে করি যে প্রচুর ক্ষেত্রে (বিশেষত রেল / সক্রিয় রেকর্ড সহ) সমীকরণ থেকে ওআরএম সম্পূর্ণভাবে সরিয়ে ফেলা এবং পারফরম্যান্সের কারণে জিজ্ঞাসা করার জন্য একটি কাঁচা এসকিউএল স্ট্রিং লিখতে সাধারণ। আপনার ORM আপনার জন্য ডেটা সিদ্ধান্ত নিতে দেবেন না! এটি একটি আনুষাঙ্গিক একটি অপরিহার্য নয়।
স্টিফান থার্ড

2
ইউআরএল-এ উদ্ধৃত ইউআরএল সম্পর্কে এই সীমাগুলি বর্তমানে দেখায় না - এটি কোথায় স্থানান্তরিত হয়েছে কেউ জানেন?
কর্তিত

58

আপনার 100 মিলিয়ন সারি সহ একটি টেবিলের উপরে আপনার প্রশ্নের গতি বাড়ানোর আর একটি উপায় হল সূচীতে টেবিলটি ক্লাস্টার বন্ধ সময় হয় যা আপনার প্রশ্নগুলিতে প্রায়শই ব্যবহৃত হয়। আমাদের কাছে 218 মিলিয়ন সারি সহ একটি টেবিল রয়েছে এবং 30X উন্নতি পেয়েছি।

এছাড়াও, খুব বড় টেবিলের জন্য, আপনার বিদেশী কীতে একটি সূচক তৈরি করা ভাল ধারণা।


> বন্ধ সময়ে সূচকের টেবিলটি ক্লাস্টার করে যা আপনার প্রশ্নগুলিতে প্রায়শই ব্যবহৃত হয় .... আপনি কীভাবে এটি সম্পন্ন করতে পারেন তা ব্যাখ্যা করতে পারেন?
গুপ্তচর

6
হ্যাঁ এখানে ধাপে ধাপে প্রতিটি উদাহরণ: 1) আমি যে টেবিলটির উল্লেখ করছি সেটিকে এই উদাহরণ হিসাবে বিনিয়োগ বলা হয়। ২) প্রশ্নের সর্বাধিক ব্যবহৃত সূচকটি হ'ল (ব্যাঙ্কিড, রেকর্ড_ডেট) সুতরাং আপনার ধাপে ধাপে এখানে: 1) পিএসকিএল-সি "ড্রপ সূচী বিনিয়োগ_বাঙ্কিড_রেসি_ডিটি_আইডিএক্স;" ডিবি নাম 2) পিএসকিএল-সি "বিনিয়োগের উপর সূচক বিনিয়োগ তৈরি করুন_বাঙ্কিড_রেসি_ডিটি_আইডিএক্স (ব্যাঙ্কিড, রেকর্ড_ডেট);" 3) পিএসকিএল-সি "বিনিয়োগের উপর গুচ্ছ বিনিয়োগ_বাঙ্কিড_রেসি_ডিটি_আইডিএক্স;" 4) ভ্যাকুয়ামডিবি-সিসিব্যাঙ্ক -z -v -t বিনিয়োগ সুতরাং এক এবং দুই ধাপে আমরা সূচকটি বাদ দিয়ে আবার এটি তৈরি করি।
জেমস দোহার্টি

3
পদক্ষেপ 3 আমরা ক্লাস্টারটি তৈরি করি, এটি মূলত সূচকটির দৈহিক ক্রমে ডিবি টেবিলটি রাখে, তাই পোস্টগ্র্যাস্কল যখন কোনও কোয়েরি সম্পাদন করে তখন এটি সম্ভবত পরবর্তী সারিগুলিকে ক্যাশে করে। পদক্ষেপ 4 আমরা ক্যোয়ারার পরিকল্পনাকারীর পরিসংখ্যানগুলি পুনরায় সেট করতে ডাটাবেসকে শূন্য করি
জেমস দোহার্টি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.