ืืคื ื ืืฆื ืฉื ื
ืืืืื ืืืืืฉืื ืืืืจืื ืื ืขืฉืื ื ืขืืื
ืืขืืฉืื ืื ืื ื ืืืื ืื ืืืืจ ืขื ืืืืื ืืืืช ืืืฉืืช ืฉืชืืืื ืืืฉืชืืฉ ืืื.
ืชืืืื ืืคืืจืืืื ืฉืื ืื ืฉื ืชืืื ืืืช
ืชืื ื ืืืืืื, ืืื ืขื ืืืงืฉื
ืืฉืืจืืช ืืืืกืืฃ, ืืืจ ืืช ืื ืืืืืง, ืืื ืืืงื ืขื ืืงืกื ืฉืืืืชื, ืขื ืื ืืืืืื ืืืืืืืื:
Query Text: INSERT INTO dicquery_20200604 VALUES ($1.*) ON CONFLICT (query)
DO NOTHING;
Insert on dicquery_20200604 (cost=0.00..0.05 rows=1 width=52) (actual time=40.376..40.376 rows=0 loops=1)
Conflict Resolution: NOTHING
Conflict Arbiter Indexes: dicquery_20200604_pkey
Tuples Inserted: 1
Conflicting Tuples: 0
Buffers: shared hit=9 read=1 dirtied=1
-> Result (cost=0.00..0.05 rows=1 width=52) (actual time=0.001..0.001 rows=1 loops=1)
... ืืืื ืืก ืืช ืื ืื ืฉืืืขืชืง ืืฉืืจืืช ืืฉืื ืืชืืื ืืช, ืืืื ืืืคืจืื ืืืจ:
ืืกืืฃ ืื ืื ื ืืงืืืื ืืื ืืก ืืชืืื ืืช ืืืคืืจืงืช ื ืืจืืืกืืืช "ืืงืฉืจ"., ืฉื ืืืฆืืช ืืงืฉืชื ื ืืืืื ืชืคืืจืชื:
JSON ื-YAML
EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)
SELECT * FROM pg_class;
"[
{
"Plan": {
"Node Type": "Seq Scan",
"Parallel Aware": false,
"Relation Name": "pg_class",
"Alias": "pg_class",
"Startup Cost": 0.00,
"Total Cost": 1336.20,
"Plan Rows": 13804,
"Plan Width": 539,
"Actual Startup Time": 0.006,
"Actual Total Time": 1.838,
"Actual Rows": 10266,
"Actual Loops": 1,
"Shared Hit Blocks": 646,
"Shared Read Blocks": 0,
"Shared Dirtied Blocks": 0,
"Shared Written Blocks": 0,
"Local Hit Blocks": 0,
"Local Read Blocks": 0,
"Local Dirtied Blocks": 0,
"Local Written Blocks": 0,
"Temp Read Blocks": 0,
"Temp Written Blocks": 0
},
"Planning Time": 5.135,
"Triggers": [
],
"Execution Time": 2.389
}
]"
ืื ืขื ืืจืืืืช ืืืฆืื ืืืช, ืืขืืชืงื pgAdmin, ืื ืืื - ืื ืื ื ืืืจืงืื ืืช ืื ืืืืชื ืฉืื, ืืืคืื ืืื ืืืคื:
ืืืืืืืืืฆืื ืืชืงืืืช
ืืื ืชืื ืื/ืืื ืืืฆืืข
ืืขืช ืชืืื ืืจืืืช ืืื ืืืชืจ ืืืื ืืืฉืงืข ืืืื ืื ืืกืฃ ืืืืฆืืข ืืฉืืืืชื:
ืชืืืื I/O
ืืคืขืืื ืืชื ืฆืจืื ืืืชืืืื ืขื ืืฆื ืฉืื, ืืืืื ืช ืืฉืืืื, ื ืจืื ืฉืื ืงืจืื ืื ืืชืื ืืืชืจ ืืื, ืืื ื ืจืื ืฉืืื ืืืืฆืืข ืืื ืืจืื ืืืืคื ืื ืืชืืื.
ืืื ืขืืื ื ืืืืจ: "ืื, ืื ืจืื ืฉืืืืชื ืจืืข ืืืืกืง ืืฉืจืช ืืื ืขืืืก ืืื, ืื ืืกืืื ืฉืืงื ืื ืื ืืจืื ืืื ืืงืจืื!"ืืื ืืืืฉืื ืื ืื ืืืื ืืืืืง...
ืืื ืื ืืืื ืืืืงืืข ืืืืคื ืืืื ืืืืืืื. ืืขืืืื ืืื ืฉืืื ืืคืฉืจืืืืช ืืชืฆืืจื ืฉื ืฉืจืช PG ืืฉ track_io_timing
ืืืคืฉืจ ืชืืืื ืฉื ืคืขืืืืช I/O. ืืคืฉืจืืช ืื ืืืฉืืชืช ืืืจืืจืช ืืืื ืืืืืื ืฉืืื ืืืจืฉืช ืฉืืืืชื ืืชืืืช ืืืขืจืืช ืืืคืขืื ืืืื ืื ืืืื, ืื ืฉืขืืื ืืืื ืืฉืืขืืชืืช ืืช ืืืืฆืืขืื ืืคืืืคืืจืืืช ืืกืืืืืช. ืืื ืืืขืจืื ืืช ืขืืืช ืืชืืืื ืืคืืืคืืจืื ืฉืื, ืืชื ืืืื ืืืฉืชืืฉ ืืืื ืืฉืืจืืช pg_test_timing. ื ืืชื ืืงืื ื ืชืื ืื ืกืืืืกืืืื ืฉื I/O ืืจื ืชืฆืืืช pg_stat_database, ืืคืื EXPLAIN (ืืืฉืจ ื ืขืฉื ืฉืืืืฉ ืืคืจืืืจ BUFFERS) ืืืจื ืชืฆืืืช pg_stat_statements.
ื ืืชื ืืืคืขืื ืืคืฉืจืืช ืื ืื ืืืคืขืื ืืงืืืืช:
SET track_io_timing = TRUE;
ืืืื, ืืืืง ืืืื ืืืืชืจ ืืื ืฉืืืื ื ืืืืื ืืืืฆืื ืืช ืื ืชืื ืื ืืืื ืชืื ืืชืืฉืืืช ืืื ืืืจื ืกืคืืจืืฆืืืช ืฉื ืขืฅ ืืืืฆืืข:
ืืื ืืชื ืืืื ืืจืืืช ืฉืืชืื 0.790ms ืืืื ืืืืฆืืข ืืืืื, 0.718ms ื ืืจืฉื ืืงืจืื ืืฃ ื ืชืื ืื ืืื, 0.044ms ื ืืจืฉื ืืืชืื ืืืชื, ืืจืง 0.028ms ืืืฉืงืขื ืขื ืื ืฉืืจ ืืคืขืืืืืืช ืืฉืืืืฉืืืช!
ืืขืชืื ืขื PostgreSQL 13
ืชืืื ืืืฆืื ืกืงืืจื ืืืื ืฉื ืืืืืฉืื
ืชืื ืื ืืืืจืื
ืืชืืฉืื ืืช ืืืฉืืืื ืฉืืืงืฆื ืืืชืืื ืืื ืืืื ืืืืื ืืชืืงืื ืืืจ ืฉืืื ื ืงืฉืืจ ื-pg_stat_statements. ืืกืืจ ืขื ืืืคืฉืจืืช BUFFERS ืืืืื ืขื ืืกืคืจ ืืืืืจืื ืืฉืืืืฉ ืืฉืื ืืชืื ืื:
Seq Scan on pg_class (actual rows=386 loops=1) Buffers: shared hit=9 read=4 Planning Time: 0.782 ms Buffers: shared hit=103 read=11 Execution Time: 0.219 ms
ืืืื ืืฆืืืจ
ืืืงืจืื ืืื ืืฉ ืฆืืจื ืืืืื ืขื ืืคืชืืืช ืจืืื (k1, k2, k3...), ืืืชืื ื ืืืื ืืขืช ืื ืฆื ืืช ืืืืืขื ืฉืื ืชืื ืื ืืืจ ืืืืื ืื ืขื ืืื ืืืืคืชืืืช ืืจืืฉืื ืื (ืืืืืื, k1 ื-k2). ืืืงืจื ืื, ืืชื ืื ืืืื ืืืืื ืืืืฉ ืืช ืื ืื ืชืื ืื ืฉืื, ืืื ืืืืง ืืืชื ืืงืืืฆืืช ืขืืงืืืช ืขื ืืืชื ืขืจืืื ืฉื k1 ื-k2, ื"ืืืืื" ืืืชื ืืืืฉ ืืคื ืืคืชื k3.
ืืคืืื, ืืืืื ืืืื ืืืืืง ืืืกืคืจ ืกืืืื ืขืืงืืื ืืืืื ืงืื ืืืชืจ. ืื ืืคืืืช ืืช ืืืืช ืืืืืจืื ืื ืืจืฉืช ืืืืคืฉืจ ืื ืืืืฆืื ืืช ืื ืชืื ืื ืืจืืฉืื ืื ืืคื ื ืืฉืืืช ืืืืื ืืืื.
Incremental Sort (actual rows=2949857 loops=1) Sort Key: ticket_no, passenger_id Presorted Key: ticket_no Full-sort Groups: 92184 Sort Method: quicksort Memory: avg=31kB peak=31kB -> Index Scan using tickets_pkey on tickets (actual rows=2949857 loops=1) Planning Time: 2.137 ms Execution Time: 2230.019 ms
ืฉืืคืืจื UI/UX
ืฆืืืืื ืืกื, ืื ืืื ืืงืื!
ืขืืฉืื ืืื ืืจืืืกืืื ืืฉ ืืืืื ืืช ืืืืืจืืช ืฆืื ืฆืืืื ืืกื ืฉื ืืืจืืืกืืื ืืืื ืื ืืจืืื ืืืขืืืง ืฉื ืืืฉืื ืืช - "ืืจืื" ืืฆื ืืืื ืืืขืื:
ืืืขืฉื, ืจืื ืืชืืื ืืช ืืคืจืกืื ืื ืืชืงืืื ืืืจื ืื.
ืืืืฆืืช ืขื ืฆืืชืื
ืื ืจืง ืฉืืคืื ืืืชืจ ืืื, ืืื ืฉืืคืฉืจ ืื ืืืืจ ืขื ืื ืืื ืืื
ืืืืง ืืืืจืืืื
ืืื ืื ืฉืื ืืืืช ืืืงืฉื ืืืืกืืฃ ืืช ืืืคืฉืจืืช ืืืง "ืืืืจื" ืืคืืื ืชืืื ืืืช ืฉืืื ื ืืชืคืจืกืืืช ืืืจืืืื - ืื ื ืคืฉืื ืืืฅ ืขื ืืกืื ืืืชืืื:
ืืืื, ืื ืชืฉืื ืฉืืฉ ืื ื
ืืงืืจ: www.habr.com