Oracle数据库更新和插入哪个更快?数据库实测

项目中想记录一下文章的访问时长,准备采用心跳的方法来记录。

在设计数据库表时,有两种方案:

  1. 每次心跳在数据库插入一条记录;
  2. 每次心跳根据id更新数据。

方案1特点,每次心跳都会有一条数据记录,比较详细,但时查询时可能存在冗余数据

方案2特点,一篇文章只有一条记录,查询时比较简单,但是担心更新数据库会比较慢

1准备数据

准备在数据库测试一下,千万级别数据时的插入和更新性能

-- 建表及序列
create table t_test
(
  id   number(10) not null,
  content VARCHAR2(30),
  create_time date,
  audit_time date
);

alter table t_test add constraint PK_test primary key (id);

create sequence s_test__id;

存储过程,插入1 千万数据

create or replace procedure pro_test_insert_update is
  i int := 0;
begin
  dbms_output.put_line('start!');
  while i < 10000000 loop
    insert into t_test
    values
      (s_test_insert__id.nextval, i, sysdate, sysdate);
    if mod(i, 1000) = 0 then
      commit;
    end i
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值