WHERE क्लॉज़ में फ़िल्टरिंग

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

Amy McCarty

Instructor

डेटा सीमित करें

क्रम क्लॉज़ उद्देश्य
1 FROM तालिका(ओं) का स्रोत बताता है
2 WHERE रिकॉर्ड्स को फ़िल्टर/सीमित करता है

 

  • शुरुआत में होता है
  • कम रिकॉर्ड्स
PostgreSQL में क्वेरी प्रदर्शन सुधारना

EXPLAIN

EXPLAIN
SELECT * FROM phones

 

Seq Scan on phones (cost = 0.00..22.7
                    ,rows=1270
                    ,width=36)
  • निष्पादन चरणों की संख्या

क्वेरी प्लानर

एक बड़े बर्तन के आसपास कई शेफ़

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

EXPLAIN के साथ WHERE

EXPLAIN
SELECT * FROM phones
WHERE phone_code = 235

 

Seq Scan on phones (cost = 0.00..25.8
                    ,rows=6,width=636)
  Filter: (phone_code=235)

क्वेरी प्लानर

एक बड़े बर्तन के आसपास कई शेफ़

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

अच्छा - LIKE OR से मिलते-जुलते मान फ़िल्टर करना

country phone_code reliability
Chad 235 medium
China 86 high
Costa Rica 506 high
India 91 medium
Indonesia 62 medium
Iraq 964 low
EXPLAIN
SELECT * FROM phones
WHERE country LIKE 'Ch%' 
  OR country LIKE 'In%'

 

Seq Scan on phones (cost = 0.00..29.05
                    ,rows=13,width=36)
  Filter: ((country~~'Ch%'::text)
           OR(country~~'In%'::text))
PostgreSQL में क्वेरी प्रदर्शन सुधारना

बेहतर - LIKE ANY से मिलते-जुलते मान फ़िल्टर करना

country phone_code reliability
Chad 235 medium
China 86 high
Costa Rica 506 high
India 91 medium
Indonesia 62 medium
Iraq 964 low
EXPLAIN
SELECT * FROM phones
WHERE country 
  LIKE ANY(ARRAY['Ch%','In%'])

 

Seq Scan on phones (cost = 0.00..25.88
                    ,rows=13,width=36)
  Filter: ((country~~ANY('{Ch%,In%}'
                          ::text[]))
PostgreSQL में क्वेरी प्रदर्शन सुधारना

अच्छा - सटीक मानों के लिए OR से फ़िल्टर करना

country phone_code reliability
Chad 235 medium
China 86 high
Costa Rica 506 high
India 91 medium
Indonesia 62 medium
Iraq 964 low
EXPLAIN
SELECT * FROM phones
WHERE country = 'Chad' 
  OR country = 'China'

 

Seq Scan on phones (cost = 0.00..29.05
                    ,rows=13,width=36)
  Filter: ((country='Chad'::text)
           OR(country='China'::text))
PostgreSQL में क्वेरी प्रदर्शन सुधारना

बेहतर - सटीक मानों के लिए IN से फ़िल्टर करना

country phone_code reliability
Chad 235 medium
China 86 high
Costa Rica 506 high
India 91 medium
Indonesia 62 medium
Iraq 964 low
EXPLAIN
SELECT * FROM phones
WHERE country IN ('Chad','China')

 

Seq Scan on phones (cost = 0.00..25.88
                    ,rows=13,width=36)
  Filter: ((country=ANY('{Chad,China}'
                          ::text[]))
PostgreSQL में क्वेरी प्रदर्शन सुधारना

सर्वोत्तम - संख्याओं के लिए फ़िल्टरिंग

country phone_code reliability
Chad 235 medium
China 86 high
Costa Rica 506 high
India 91 medium
Indonesia 62 medium
Iraq 964 low
EXPLAIN
SELECT *
FROM phones
WHERE phone_code IN (235,86) 

 

Seq Scan on phones (cost = 0.00..25.88
                    ,rows=13,width=36)
  Filter: (phone_code=ANY('{235,86}'
                          ::integer[]))
PostgreSQL में क्वेरी प्रदर्शन सुधारना

सर्वश्रेष्ठ WHERE फ़िल्टर्स का सार

 

संख्यात्मक लाभ

  • कम लंबाई
  • कम स्टोरेज
  • प्रदर्शन तेज होता है
PostgreSQL में क्वेरी प्रदर्शन सुधारना

सर्वश्रेष्ठ WHERE फ़िल्टर्स का सार

 

संख्यात्मक लाभ

  • कम लंबाई
  • कम स्टोरेज
  • प्रदर्शन तेज होता है

 

अच्छा बेहतर
टेक्स्ट संख्यात्मक
OR IN, ARRAY
PostgreSQL में क्वेरी प्रदर्शन सुधारना

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

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

Preparing Video For Download...