Row-oriented स्टोरेज और पार्टिशन

PostgreSQL में क्वेरी प्रदर्शन सुधारना

Amy McCarty

Instructor

डेटाबेस स्टोरेज प्रकार

Row-oriented स्टोरेज

  • कॉलमों के बीच संबंध बना रहता है

Column-oriented स्टोरेज

  • रो के बीच संबंध बना रहता है
id name species age habitat received
01 Bob panda 2 Asia 2018
02 Sunny zebra 3 Africa 2018
03 Beco zebra 10 Africa 2017
04 Coco koala 5 Australia 2016
PostgreSQL में क्वेरी प्रदर्शन सुधारना

Row-oriented

Row-oriented स्टोरेज

  • कॉलमों के बीच संबंध बना रहता है

 

id name species age habitat received
01 Bob panda 2 Asia 2018
PostgreSQL में क्वेरी प्रदर्शन सुधारना

Column-oriented

Column-oriented स्टोरेज

  • रो के बीच संबंध बना रहता है  

दो टेबल। पहले टेबल में ids और names की सूची: 01 - Bob, 02 - Sunny, 03 - Beco, 04 - Coco. दूसरे टेबल में वही ids और species: 01 - panda, 02 - zebra, 03 - zebra, 04 - koala.

PostgreSQL में क्वेरी प्रदर्शन सुधारना

Row-oriented स्टोरेज

 

  • एक पूरी रो एक ही लोकेशन पर स्टोर
  • पूरी रिकॉर्ड जोड़ना/हटाना तेज
  • सभी कॉलम जल्दी लौटें
    • सभी रो लौटाने में धीमा
PostgreSQL में क्वेरी प्रदर्शन सुधारना

Rows घटाना

रो की संख्या घटाएँ

  • WHERE फ़िल्टर
  • INNER JOIN
  • DISTINCT
  • LIMIT
PostgreSQL में क्वेरी प्रदर्शन सुधारना

Row-oriented डेटाबेस विधियाँ

Partitions

  • एक (parent) टेबल को कई छोटे (children) टेबल्स में बाँटने की विधि

Indexes

  • खोज तेज करने के लिए sorted कॉलम keys बनाने की विधि

 

Partitions और indexes का उपयोग

  • सेटअप और मेंटेनेंस चाहिए
  • इनके बारे में DBA या डॉक्यूमेंटेशन से जानकारी मिलती है
PostgreSQL में क्वेरी प्रदर्शन सुधारना

Partition संरचना

चिड़ियाघर जानवरों की एक parent टेबल जिसमें चार रिकॉर्ड हैं: id, name, species, habitat, और year received. 01 - Bob - Panda - age - habitat - received. 02 - Sunny - Zebra - 3 - Africa - 2018. 03 - Beco - Zebra - 10 - Africa - 2017. 04 - Coco - Macaw - 5 - South America - 2016. habitat कॉलम के अनुसार 3 children टेबल हैं। Asia टेबल में Bob का एक रिकॉर्ड। Africa टेबल में Sunny और Beco के दो रिकॉर्ड। South America टेबल में Coco का एक रिकॉर्ड.

  • Parent टेबल
    • डेटाबेस फ्रंट एंड में दिखती है
    • यहीं क्वेरी लिखें
  • Children टेबल्स
    • डेटाबेस फ्रंट एंड में नहीं दिखतीं
    • क्वेरी इन्हें खोजती हैं
PostgreSQL में क्वेरी प्रदर्शन सुधारना

Partition संरचना

चिड़ियाघर जानवरों की एक parent टेबल जिसमें चार रिकॉर्ड हैं: id, name, species, habitat, और year received. 01 - Bob - Panda - age - habitat - received. 02 - Sunny - Zebra - 3 - Africa - 2018. 03 - Beco - Zebra - 10 - Africa - 2017. 04 - Coco - Macaw - 5 - South America - 2016. habitat कॉलम के अनुसार 3 children टेबल हैं। Asia टेबल में Bob का एक रिकॉर्ड। Africa टेबल में Sunny और Beco के दो रिकॉर्ड। South America टेबल में Coco का एक रिकॉर्ड. Africa टेबल लाल बॉर्डर से हाइलाइट है.

SELECT species
FROM zoo_animals
WHERE habitat = 'Africa'
PostgreSQL में क्वेरी प्रदर्शन सुधारना

Partition अवलोकन

What

  • एक टेबल को कई छोटे टेबल्स में बाँटना

Why

  • स्टोरेज लचीलापन
  • तेज क्वेरीज़

Where

  • सामान्य फ़िल्टर कॉलम्स
    • तारीख, लोकेशन
PostgreSQL में क्वेरी प्रदर्शन सुधारना

Partition क्वेरी आकलन

Query planner

एक बड़े पकाने के बर्तन के चारों ओर कई शेफ

EXPLAIN
SELECT species
FROM zoo_animals
WHERE habitat = 'Africa'

Query Plan

Seq Scan on zoo_animals  (cost=0.00..
17.70 rows=2 width=182)
  Filter: (state_code = 15)
  • लागत (समय) अनुमान
PostgreSQL में क्वेरी प्रदर्शन सुधारना

अभ्यास करते हैं!

PostgreSQL में क्वेरी प्रदर्शन सुधारना

Preparing Video For Download...