PostgreSQL में क्वेरी प्रदर्शन सुधारना
Amy McCarty
Instructor
| System | Front end steps | Back end processes | |
|---|---|---|---|
| 1 | Parser | क्वेरी डेटाबेस को भेजें | सिंटैक्स जाँचे। सिस्टम में संग्रहीत नियमों के आधार पर SQL को अधिक कंप्यूटर-अनुकूल सिंटैक्स में बदले. |
| 2 | Planner & Optimizer | क्वेरी कार्यों का आकलन और ऑप्टिमाइज़ करें | डेटाबेस आँकड़ों से क्वेरी प्लान बनाए। लागत गिने और सर्वोत्तम प्लान चुने. |
| 3 | Executor | क्वेरी परिणाम लौटाएँ | क्वेरी प्लान का पालन करके क्वेरी चलाए. |
SQL संरचना में बदलाव के प्रति संवेदनशील
SELECT * FROM pg_class
WHERE relname = 'mytable'
-- sample of output columns
| relname | relhasindex |
SELECT * FROM pg_stats
WHERE tablename = 'mytable'
-- sample of output columns
null_frac | avg_width | n_distinct |
EXPLAIN
SELECT * FROM cheeses
Seq Scan on cheeses
(cost=0.00..10.50 rows=5725 width=296)
Seq Scan on cheeses (cost=0.00..10.50 rows=5725 width=296)
Seq Scan on cheeses (cost=0.00..10.50 rows=5725 width=296)
..10.50 : total time
total time = start up + run time
Seq Scan on cheeses (cost=0.00..10.50 rows=5725 width=296)
EXPLAIN
SELECT * FROM cheeses WHERE species IN ('goat','sheep')
Seq Scan on cheeses (cost=0.00..378.90 rows=3 width=118)
-> Filter: (species = ANY ('{"goat","sheep"}'::text[]))
EXPLAIN
SELECT * FROM cheeses WHERE species IN ('goat','sheep') -- index on species column
Bitmap Index Scan using species_idx on cheeses (cost=0.29..12.66 rows=3 width=118)
Index Cond: (species = ANY ('{"goat","sheep"}'::text[]))
PostgreSQL में क्वेरी प्रदर्शन सुधारना