CREATE EXTENSION IF NOT EXISTS pageinspect;
-- Create table sample_table
CREATE TABLE store (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
value INT NOT NULL
);
-- Insert rows, about 1M ?
DO $$
BEGIN
FOR i IN 1..1000000 LOOP
INSERT INTO store (name, value)
VALUES ('Name_' || i, i * 10);
END LOOP;
END $$;
-- Disable autovacuum for the table
ALTER TABLE store SET (autovacuum_enabled = false);
------------------------------------------------------------
SELECT txid_current();
SELECT txid_current();
INSERT INTO store(name, value) VALUES('score', 10);
SELECT xmin, xmax, * FROM store WHERE id=1;
SELECT lp, t_ctid, t_xmin, t_xmax, FROM heap_page_items(get_raw_page('store', 0));
UPDATE store set value=20 where id=1;
SELECT xmin, xmax, * FROM store WHERE id=1;
SELECT lp, t_ctid, t_xmin, t_xmax FROM heap_page_items(get_raw_page('store', 0));
SELECT n_live_tup, n_dead_tup, relname FROM pg_stat_all_tables WHERE relname = 'store';
SELECT lp, t_ctid, t_xmin, t_xmax, t_data
FROM heap_page_items(get_raw_page('accounts', 0));
-------------------------------------------------------------
SELECT COUNT(*) FROM sample_table;
select * from sample_table;
UPDATE sample_table set value=1283423;
select xmin, xmax, * from store where id=1;
-- Show number of live and dead tuples in sample_table
select n_live_tup, n_dead_tup, relname from pg_stat_all_tables WHERE relname = 'sample_table';
-- Size of table
SELECT
relname AS table_name,
pg_size_pretty(pg_total_relation_size(relid)) AS total_size
FROM
pg_catalog.pg_statio_user_tables
WHERE
relname = 'store';
-- Manual vacuum
VACUUM FULL sample_table;
select txid_current();
INSERT INTO sample_table (name, value)
VALUES ('foo', 10);
update sample_table set value=30 where name='foo';
select * from sample_table;
select xmin, xmax, * from sample_table where name='foo';
SELECT lp, t_ctid, t_xmin, t_xmax, t_infomask2
FROM heap_page_items(get_raw_page('sample_table', 0));
drop table sample_table;
HEAP TUPLES SELECT * FROM heap_page_items(get_raw_page(‘sample’, 0)) limit 15;
VIEW INDEXES SELECT * FROM bt_page_items(‘sample_pkey’, 1) limit 10;
data in index stores the index value, 0a 00 00 00 00 00 00 00 = 10