Alain Lesage
Devfest Nantes 2025
BEGIN, COMMIT,
ROLLBACK)UNIQUE, NOT NULL,
CHECK…)autovacuum
VACUUM
CREATE INDEX idx_log_ts_btree ON log(ts);
CREATE INDEX idx_log_ts_brin ON log USING brin (ts);
postgres=# \di+
Nom | Type | Table | Méthode d'accès | Taille
------------------+-------+-------+-----------------+----------
idx_log_ts_brin | index | log | brin | 24 kB
idx_log_ts_btree | index | log | btree | 21 MB autovacuumANALYZEpg_stat_activity,pg_stat_user_tables,pg_stat_io,pg_stat_statementscheck_pgactivitypostgres=# \d pg_stats
...
schemaname | name
tablename | name
attname | name -- nom de la colonne
null_frac | real -- % de valeurs nulles
avg_width | integer -- taille moyenne des valeurs en octets
n_distinct | real -- nombre de valeurs distinctes
most_common_vals | anyarray -- valeurs les plus fréquentes
most_common_freqs | real[] -- fréquences des valeurs fréquentes
histogram_bounds | anyarray -- histogramme
correlation | real -- ordre physique des données => BRIN
...citus_columnar Limit (cost=1570746.37..1570746.38 rows=1 width=671)
(actual time=240016.770..240016.781 rows=1 loops=1)
-> Sort (cost=1570746.37..1570746.39 rows=10 width=671)
(actual time=240016.767..240016.776 rows=1 loops=1)
Sort Key: table_a.created_at DESC
Sort Method: top-N heapsort Memory: 25kB
InitPlan 1 (returns $0)
-> Index Scan using unique_key_constraint on table_b
(cost=0.27..8.29 rows=1 width=4)
(actual time=0.567..0.575 rows=1 loops=1)
Index Cond: ((unique_key)::text = '_UNiquEv41ue_'::text)
-> Bitmap Heap Scan on table_a (cost=33130.70..1570737.91 rows=10 width=671)
...
Planning time: 18.432 ms
Execution time: 240021.889 ms
ANALYZE : 30 ms 🐎