时间:2021-07-01 10:21:17 帮助过:28人阅读
可以看到在新建正常表并插770M的数据的情况下耗时近16分钟
新建一张unlogged表并插入770M数据进行测试
uber_geocoder=# create unlogged table twn_addr_compact_unloggod as select * from twn_addr_compact ; SELECT 258902 Time: 300683.321 ms
可以看到在同等条件下unlogged表的插入速度为5分钟,性能提高了三倍。
感兴趣的可以将postgres进程kill掉,然后再启动数据库,就会发现我们刚才创建的unlogged表数据丢失。
如何查看当前数据库中所有的unlogged表
uber_geocoder=# select n.nspname as schema_name,c.relname as table_name from pg_catalog.pg_namespace n, pg_catalog.pg_class c where c.relnamespace=n.oid and n.nspname != ‘pg_toast‘ and c.relpersistence = ‘u‘; schema_name | table_name --------------------------+--------------------------- edbstore | emp uber_geocoder_tw_15q3_v2 | twn_addr_compact_unloggod (2 rows)
如果需要批量将unlogged表修改为正常的表,则执行如下
uber_geocoder=# select ‘ALTER TABLE‘||‘ ‘||concat(n.nspname,‘.‘ ,c.relname)||‘ ‘||‘SET LOGGED ;‘ AS convert_logged_sql from pg_catalog.pg_namespace n, pg_catalog.pg_class c where c.relnamespace=n.oid and n.nspname != ‘pg_toast‘ and c.relpersistence = ‘u‘; convert_logged_sql ----------------------------------------------------------------------------- ALTER TABLE edbstore.emp SET LOGGED ; ALTER TABLE uber_geocoder_tw_15q3_v2.twn_addr_compact_unloggod SET LOGGED ; (2 rows)
PostgreSQL unlogged表
标签:cat RoCE 索引 表数 type 文件中 data font row