Bing_sama 2022-12-16 10:27 采纳率: 50%
浏览 47
已结题

H2数据库用持久为mv.db文件数据量很大时效率非常慢

问题描述
使用jdbc:h2:file:path
大概连续插入2万+条数据,可能更多
前面插入速度还正常,大概一万条以上mv.db文件应该接近100mb,突然插入效率变得非常慢,db文件出现压缩的样子变成几MB的
全部插入完以后只有17MB
通过日志查看每条插入用时接近1秒,不知道描述的清楚吗,总的问题就是,插入2w以上条数据进db文件,插入到一定量后就会变得非常慢。

我不了解h2关于文件储存这种模式,是因为什么配置问题吗,不知道是不是因为自动压缩了db文件大小导致插入效率变低了。
我现在只需要文件正常插入数据的速度,不用压缩文件

  • 写回答

1条回答 默认 最新

  • bin9wei 2022-12-17 18:37
    关注

    我写了一个demo程序测试你描述的场景。

    按照这个表结构,每行记录是10000字节,插入3000行记录,文件大小约300M。

    CREATE TABLE student (
    id INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    body CHAR(10000) NOT NULL -- fixed size of 10000 bytes
    );
    

    插入速度没有明显变慢。

    inserted 29992 record, used: 0 ms
    inserted 29993 record, used: 0 ms
    inserted 29994 record, used: 0 ms
    inserted 29995 record, used: 0 ms
    inserted 29996 record, used: 0 ms
    inserted 29997 record, used: 0 ms
    inserted 29998 record, used: 0 ms
    inserted 29999 record, used: 84 ms
    Total used: 6411 ms
    

    数据库文件大小288M

    img

    代码上传到git code https://gitcode.net/bin9wei/play-h2/,你看看?

    你的问题可能还跟表结构和代码也有关,你可以分享下你的表结构和代码。

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月30日
  • 专家已采纳回答 12月22日
  • 创建了问题 12月16日

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,