結論:
與普通表比較,內存表的性能提升不明顯;
與普通表比較,無日志表在插入時性能提高約1倍、更新和刪除時提高約40%;
測試環境:
1,准備
創建普通表:
drop table if EXISTS db_stream.t_aj_tj_general;
create table db_stream.t_aj_ tj_general
(
n_bh int8,
c_ah varchar(100),
n_jbfy int,
c_larq varchar(20),
c_jarq varchar(20),
n_ay int,
n_sl int,
d_updatetime TIMESTAMP
);
創建內存表:
create tablespace ramdis location '/dev/shm';
drop table t_aj_tj_ram;
create table t_aj_tj_ram TABLESPACE ramdis as select * from t_aj_tj_general ;
創建無日志表:
drop table t_aj_tj_unlogged;
create unlogged table t_aj_tj_unlogged as select * from t_aj_tj_general ;
創建內存表+無日志表:
drop table t_aj_tj_ramunlogged;
create unlogged table t_aj_tj_ramunlogged TABLESPACE ramdis as select * from t_aj_tj_general ;
2,批量插入對比
普通表
truncate table t_aj_tj_general;
insert into t_aj_tj_general select generate_series(1,5000000),'yy',664,'2017-12-08','2017-12-08',9533,1,now();
14.343s
無日志表
truncate table t_aj_tj_unlogged;
insert into t_aj_tj_unlogged select generate_series(1,5000000),'yy',664,'2017-12-08','2017-12-08',9533,1,now();
7.277s
內存表
truncate table t_aj_tj_ram;
insert into t_aj_tj_ram select generate_series(1,5000000),'yy',664,'2017-12-08','2017-12-08',9533,1,now();
13.881s
無日志+普通表
truncate table t_aj_tj_ramunlogged;
insert into t_aj_tj_ramunlogged select generate_series(1,5000000),'yy',664,'2017-12-08','2017-12-08',9533,1,now();
7.153s
3,逐條插入/更新/刪除對比(編寫Java程序單線程每插入/更新/刪除 一提交)

作者:Iamveryrich
鏈接:https://www.jianshu.com/p/2ecec063b112
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。