什么网站可以做任务领赏金,手机写代码的软件,辽宁建设工程信息网进不去怎么办,个人网页制作教程dw【数据库】Unlogged 表使用 前言普通表和Unlogged 表的写性能比较普通表创建和数据插入Unlogged 表创建和数据插入比较结果 Unlogged 表崩溃和正常关闭测试Unlogged 表特点总结 前言
大神偶像在开会上提及了Unlogged 表#xff0c;它的特点很不错#xff0c;很适合实时数据保… 【数据库】Unlogged 表使用 前言普通表和Unlogged 表的写性能比较普通表创建和数据插入Unlogged 表创建和数据插入比较结果 Unlogged 表崩溃和正常关闭测试Unlogged 表特点总结 前言
大神偶像在开会上提及了Unlogged 表它的特点很不错很适合实时数据保存像之前类似这种数据就目前接触到的项目一般架构选型时候会用MongoDb存储实时数据或者就单独的普通表。由于之前没有接触过这种类型的表学习了一下才发现原来表还有区分分为普通表、临时表、Unlogged 表在此对Unlogged 表使用进行一个记录。
示例基于pg 数据库开始数据库管理器用dbeaversql 指令中可以用 EXPLAIN analyze sql 指令输出运行时间
普通表和Unlogged 表的写性能比较
普通表创建和数据插入
先创建普通表
create table test(a int);然后用EXPLAIN analyze 以及sql 函数插入1000000条记录
EXPLAIN analyze insert into test select generate_series(1,1000000)输出如下 执行时间为 744.469 ms
Unlogged 表创建和数据插入
先创建Unlogged 表
create unlogged table testu(a int);然后同样用EXPLAIN analyze 以及sql 函数插入1000000条记录
EXPLAIN analyze insert into testu select generate_series(1,1000000);输出如下 执行时间为 298.009 ms
比较结果
通过比较很明显发现写Unlogged 表的执行时间短很多。
Unlogged 表崩溃和正常关闭测试
在任务管理器中直接杀死PostgreSQL 主进程由于DBeaver依旧开着关闭后会自动启动PostgreSQL主进程。 此时再去查看创建的testu和test 表普通表test 数据依旧在但Unlogged 表testu已经全部清空。
但是如果是正常的关闭DBeaver然后再打开则Unlogged 表testu 数据依旧在。
Unlogged 表特点总结
unlogged table不记录wal日志(write ahead log 预写式日志)写入速度快备库无数据只有结构unlogged table 普通表(异步事务) 普通表(同步事务)当数据库crash崩溃后数据库重启时自动清空unlogged table的数据正常关闭数据库再启动时unlogged table有数据unlogged table通常用于存储中间结果频繁变更的会话数据。