问题描述
使用jdbc:h2:file:path
大概连续插入2万+条数据,可能更多
前面插入速度还正常,大概一万条以上mv.db文件应该接近100mb,突然插入效率变得非常慢,db文件出现压缩的样子变成几MB的
全部插入完以后只有17MB
通过日志查看每条插入用时接近1秒,不知道描述的清楚吗,总的问题就是,插入2w以上条数据进db文件,插入到一定量后就会变得非常慢。
我不了解h2关于文件储存这种模式,是因为什么配置问题吗,不知道是不是因为自动压缩了db文件大小导致插入效率变低了。
我现在只需要文件正常插入数据的速度,不用压缩文件
我写了一个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
代码上传到git code https://gitcode.net/bin9wei/play-h2/,你看看?
你的问题可能还跟表结构和代码也有关,你可以分享下你的表结构和代码。