পোস্টগ্রিসে আমার কীভাবে কোনও ইউইউডি সূচি করা উচিত?


26

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

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

একটি হ্যাশ বিকল্প আছে। হ্যাশিং হ'ল ও (1), এবং অবশ্যই অবশ্যই সাম্যতার সাথে তুলনা করার দরকার নেই, তবে ইউআইডিগুলি দীর্ঘ দীর্ঘ হওয়ায় আমি ভয় করি যে তাদের থেকে হ্যাশগুলি তৈরি করা অনেক সময় নষ্ট করবে।

বা এটি এমন কি যা সিস্টেম এবং ব্যবহারের নির্দিষ্টকরণের উপর খুব বেশি নির্ভর করে?

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


2
আমি বিশ্বাস করি "ফেডারেশনযুক্ত ডাটাবেস" হ'ল আপনার পরিস্থিতিটির মূল শব্দ word এবং, হ্যাঁ, ইউআইডিগুলি এর সমাধান। কয়েক দশক আগে ইউআইডিগুলি আবিষ্কার করার কারণটি ছিল: কেন্দ্রীভূত সমন্বয় ছাড়াই বিতরণ ব্যবস্থার মধ্যে ডেটা ভাগ করার জন্য।
তুলিল বাউরক

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

উত্তর:


31

ব্যবহারের পোস্টগ্রি বিল্ট-ইন এর uuidডাটা টাইপ , এবং তৈরি এটি একটি নিয়মিত বি-গাছ সূচি।

বিশেষ কিছু করার দরকার নেই। এটি সর্বোত্তম সূচকের ফলস্বরূপ এবং uuidবর্তমানে ব্যবহারিক হিসাবে ক্ষেত্রটি সংক্ষিপ্ত আকারে সংরক্ষণ করবে ।

(সংস্করণ 10 এর পূর্বে পোস্টগ্রাএসকিউএল-তে হ্যাশ সূচকগুলি ক্র্যাশ-নিরাপদ ছিল না এবং এটি সত্যই aতিহাসিক প্রতীক ছিল যা কোনওভাবে বি-ট্রি-এর চেয়ে ভাল কোনও অনুষ্ঠান করার প্রবণতা ছিল না them এড়িয়ে চলুন Post পোস্টগ্রিসকিউএল 10 এ সেগুলি ক্র্যাশ-নিরাপদ করা হয়েছে এবং কিছু ছিল কর্মক্ষমতা উন্নতি হয়েছে যাতে আপনি সেগুলি বিবেচনা করতে পারেন wish

যদি কোনও কারণে আপনি এই uuidপ্রকারটি ব্যবহার করতে না পারেন তবে আপনি সাধারণত পাঠ্যের উপস্থাপনায় একটি বি-ট্রি তৈরি করতে পারেন বা পছন্দনীয়ভাবে byteaইউইডির প্রতিনিধিত্ব করেন।


2
hashসূচী বনাম সম্পর্কিত বিবৃতিটি b-treeএকটি সাধারণভাবে অনুষ্ঠিত বিশ্বাস, যদিও আমি মনে করি যে এই জাতীয় দাবির উত্স উদ্ধৃত করা সহায়ক হবে।
ভোল্ট

1
পোস্টগ্রেএসকিউএল 10 অনুসারে, hashসূচিগুলি এখন ক্র্যাশ-নিরাপদ। এটি বলেছিল যে, hashসূচকগুলি কেবলমাত্র সাথেই ব্যবহার করা যেতে পারে =, সুতরাং আপনার যদি অন্য কোনও অপারেটরের প্রয়োজন b-treeহয় তবে এটি আরও ভাল।
rintaun

1
বছর কয়েক পরে, আমার অভিজ্ঞতার hashতুলনায় b-treeপোস্টগ্র্রেস ১০ এর চেয়ে বেশি দ্রুতগতি হয়নি , তবে যেহেতু হ্যাশ সূচকগুলি বি-ট্রি-এর চেয়ে অনেক কম ডিস্কের জায়গা নেয় তাই এটি সেটআপে আরও দ্রুত হতে পারে যেখানে বড় সূচকগুলি হয়ে যায় সমস্যা, যা আমার কাছে মনে হয় না the ভাল আমি এখন নজর রাখব যে আমি তাদেরগুলিতে v10 এ নিরাপদে ব্যবহার করতে পারি।
sudo

ভি 10 এবং ভি 11 - তে হ্যাশ সূচক পারফ উন্নতিতে কিছু ভাল রচনা আপ রয়েছে: rhaas.blogspot.com/2017/09/… - amitkapila16.blogspot.com/2017/03/…
গ্লেন মর্টন

3

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

http://www.postgresql.org/message-id/4407.1115698257@sss.pgh.pa.us


হ্যাঁ, আমি যখন হ্যাশ সূচকটি ব্যবহার করার চেষ্টা করি তখন আমি একটি সতর্কতা পাই। "অত্যন্ত নিরুৎসাহিত" বা কিছু।
sudo

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

2
কেউ হ্যাশ সূচকগুলি উদ্ধার করেছে, আমি অনুমান করছি কারণ তারা ডেটা বিভাজনে গুরুত্বপূর্ণ ভূমিকা পালন করছে, যা Pg10 ফোকাস করে চলেছে : wiki.postgresql.org/wiki/… তবে তারা তাত্ত্বিকভাবে দেখেছি এমন সমস্ত কিছু তারা আপনাকে দেয় না কলেজ ডাটাবেস ক্লাসে দরকারী;)
sudo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.