เช
เชกเชงเชพ เชตเชฐเซเชท เชชเชนเซเชฒเชพ
เชเซเชฒเซเชฒเชพ เชฎเชนเชฟเชจเชพเชเชฎเชพเช เช
เชฎเซ เชคเซเชจเชพ เชตเชฟเชถเซ เชเชฐเซเชฏเซเช เชเซ
เช
เชจเซ เชนเชตเซ เช
เชฎเซ เชคเชฎเชจเซ เชจเชตเซ เชธเซเชตเชฟเชงเชพเช เชตเชฟเชถเซ เชเชฃเชพเชตเชตเชพ เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชเซเช เชเซเชจเซ เชคเชฎเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ.
เชตเชฟเชตเชฟเชง เชฏเซเชเชจเชพ เชฌเชเชงเชพเชฐเชฃเซ เชฎเชพเชเซ เชเชงเชพเชฐ
เชตเชฟเชจเชเชคเซ เชธเชพเชฅเซ, เชฒเซเชเชฎเชพเชเชฅเซ เชฏเซเชเชจเชพ เชฌเชจเชพเชตเซ
เชธเซเชงเชพ เชเชจเซเชธเซเชฒเชฎเชพเชเชฅเซ, เช เชฎเซ เชธเชพเชฅเซเชจเซ เชฒเชพเชเชจเชฅเซ เชถเชฐเซ เชเชฐเซเชจเซ, เชธเชฎเชเซเชฐ เชฌเซเชฒเซเช เชชเชธเชเชฆ เชเชฐเซเช เชเซเช เชเซเชตเซเชฐเซ เชเซเชเซเชธเซเช, เชคเชฎเชพเชฎ เช เชเซเชฐเชฃเซ เชเชเซเชฏเชพเช เชธเชพเชฅเซ:
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 เชธเชฎเชฏ
เชเซเชเชฒเซเชเชตเชพเชฐ เชคเชฎเชพเชฐเซ เชเชตเซ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชจเซ เชธเชพเชฎเชจเซ เชเชฐเชตเซ เชชเชกเซ เชเซ เชเซเชฏเชพเช, เชธเชเชธเชพเชงเชจเซเชจเซ เชฆเซเชฐเชทเซเชเชฟเช, เชเชตเซเช เชฒเชพเชเซ เชเซ เชเซ เชเซเชฌ เชตเชพเชเชเซเชฏเซเช เช เชจเซ เชฒเชเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชจเชฅเซ, เชชเชฐเชเชคเซ เชเชตเซเช เชฒเชพเชเซ เชเซ เชเซ เช เชฎเชฒเชจเซ เชธเชฎเชฏ เชเซเช เชเชพเชฐเชฃเซเชธเชฐ เช เชธเชเชเชค เชฐเซเชคเซ เชฎเซเชเซ เชเซ.
เช เชนเซเช เชเชนเซเชตเซเช เชเชฐเซเชฐเซ เชเซ:เชเชน, เชคเซ เชเซเชทเชฃเซ, เชธเชฐเซเชตเชฐ เชชเชฐเชจเซ เชกเชฟเชธเซเช เชเชฆเชพเช เชเซเชฌ เชตเซเชฏเชธเซเชค เชนเชคเซ, เชคเซเชฅเซ เช เชคเซเชจเซ เชตเชพเชเชเชตเชพเชฎเชพเช เชเชเชฒเซ เชธเชฎเชฏ เชฒเชพเชเซเชฏเซ!"เชชเชฐเชเชคเซ เชเซเชเช เชฐเซเชคเซ เชคเซ เชเซเชฌ เชธเชเซเช เชจเชฅเซ ...
เชชเชฐเชเชคเซ เชคเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชตเชฟเชถเซเชตเชธเชจเซเชฏ เชฐเซเชคเซ เชจเชเซเชเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ. เชนเชเซเชเชค เช เชเซ เชเซ เชชเซเชเซ เชธเชฐเซเชตเชฐเชจเชพ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชตเชฟเชเชฒเซเชชเซเชฎเชพเช เชคเซเชฏเชพเช เชเซ track_io_timing
เชธเชฎเชฏเชฌเชฆเซเชง I/O เชเชชเชฐเซเชถเชจเซเชธเชจเซ เชธเชเซเชทเชฎ เชเชฐเซ เชเซ. เช เชธเซเชเชฟเชเช เชกเชฟเชซเซเชฒเซเช เชฐเซเชชเซ เช เชเซเชทเชฎ เชเซ, เชเชพเชฐเชฃ เชเซ เชคเซเชจเซ เชเชชเชฐเซเชเชฟเชเช เชธเชฟเชธเซเชเชฎเชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชธเชฎเชฏเชจเซ เชธเชคเชค เชเซเชตเซเชฐเซ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชเซ เชเซเชเชฒเชพเช เชชเซเชฒเซเชเชซเซเชฐเซเชฎเซเชธ เชชเชฐ เชตเชธเซเชคเซเชเชจเซ เชจเซเชเชงเชชเชพเชคเซเชฐ เชฐเซเชคเซ เชงเซเชฎเซเช เชเชฐเซ เชถเชเซ เชเซ. เชคเชฎเซ เชคเชฎเชพเชฐเชพ เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชชเชฐ เชธเชฎเชฏเชจเชพ เชเชตเชฐเชนเซเชกเชจเซ เช เชเชฆเชพเช เชเชพเชขเชตเชพ pg_test_timing เชเชชเชฏเซเชเชฟเชคเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ. I/O เชเชเชเชกเชพ pg_stat_database เชตเซเชฏเซ เชฆเซเชตเชพเชฐเชพ เชฎเซเชณเชตเซ เชถเชเชพเชฏ เชเซ, เชเชเซเชธเชชเซเชฒเซเชจ เชเชเชเชชเซเชเชฎเชพเช (เชเซเชฏเชพเชฐเซ เชฌเชซเชฐเซเชธ เชชเซเชฐเชพเชฎเซเชเชฐเชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ) เช เชจเซ 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