PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

स्ट्रिंग कॉलम पर पोस्टग्रेस्क्ल इंडेक्स

साधारण समानता जांच के लिए (= ), एक varchar . पर एक बी-ट्री इंडेक्स या text कॉलम सरल और सबसे अच्छा विकल्प है। यह निश्चित रूप से प्रदर्शन में मदद करता है बहुत

बेशक, एक साधारण integer . पर एक बी-ट्री इंडेक्स बेहतर प्रदर्शन करता है। शुरुआत के लिए, सरल integer की तुलना करना मान थोड़ा तेज है। लेकिन इससे भी महत्वपूर्ण बात यह है कि प्रदर्शन भी सूचकांक के आकार का एक कार्य है। बड़े कॉलम का अर्थ है प्रति डेटा पृष्ठ पर कम पंक्तियाँ, यानी अधिक पृष्ठों को पढ़ना होगा ...

चूंकि HomeAddress वैसे भी शायद ही अद्वितीय है, यह एक अच्छी प्राकृतिक प्राथमिक कुंजी नहीं है। मेरा सुझाव है कि सरोगेट प्राथमिक कुंजी . का उपयोग करें बजाय। एक serial स्तंभ उसके लिए स्पष्ट विकल्प है। इसका एकमात्र उद्देश्य काम करने के लिए एक सरल, तेज़ प्राथमिक कुंजी है।

यदि आपके पास उक्त तालिका को संदर्भित करने वाली अन्य तालिकाएँ हैं, तो यह और भी अधिक कुशल हो जाती है। विदेशी कुंजी कॉलम के लिए एक लंबी स्ट्रिंग को डुप्लिकेट करने के बजाय, आपको पूर्णांक कॉलम के लिए केवल 4 बाइट्स की आवश्यकता होती है। और आपको अपडेट को इतना अधिक कैस्केड करने की आवश्यकता नहीं है, क्योंकि एक पता बदलने के लिए बाध्य है, जबकि एक सरोगेट पीके वही रह सकता है (लेकिन निश्चित रूप से ऐसा नहीं है)।

आपकी टेबल कुछ इस तरह दिख सकती है:

CREATE TABLE resident (
   resident_id serial PRIMARY KEY
  ,address text NOT NULL
   -- more columns
);

CREATE INDEX resident_adr_idx ON resident(address);

इसका परिणाम दो बी-ट्री इंडेक्स में होता है। resident_id . पर एक अद्वितीय अनुक्रमणिका और address . पर एक सादा अनुक्रमणिका ।

मैनुअल में इंडेक्स के बारे में अधिक जानकारी .
Postgres बहुत सारे विकल्प प्रदान करता है - लेकिन इस साधारण मामले के लिए आपको किसी और की आवश्यकता नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:समग्र फ़ंक्शन का उपयोग करके अद्यतन करें

  2. पोस्टग्रेज नॉट इन परफॉरमेंस

  3. जेपीए कई-से-अनेक संबंध अनंत रिकर्सन और स्टैक ओवरफ़्लो त्रुटि का कारण बनता है

  4. अन्य फ़ील्ड के मान के आधार पर JSONB कॉलम में नया आइटम डालें - पोस्टग्रेज़

  5. समय क्षेत्र समानता के साथ समय को पोस्टग्रेज करता है