使用jdbc测了一下sqlite3的插入数据的效率,使用整体事务与不使用整体事务,差别非常明显。 cpu: 1G, 内存:512MB
使用整体事务:1000000条记录,需要93秒钟。
使用逐个插入提交事务:1秒钟只能处理20条记录。
启动程序时把java堆最

使用jdbc测了一下sqlite3的插入数据的效率,使用整体事务与不使用整体事务,差别非常明显。 cpu: 1G, 内存:512MB
使用整体事务:1000000条记录,需要93秒钟。
使用逐个插入提交事务:1秒钟只能处理20条记录。
启动程序时把java堆最大空间设大一些,不然可能出现内存不够的异常。
java -Xmx256M TestConn
测试后的结果显示如下:

以下是测试代码:
import java.sql.*;public class TestConn {void test(){Connection conn = null;Statement stmt = null;ResultSet rset = null;System.out.println(new java.util.Date());try {Class.forName("SQLite.JDBCDriver");conn = DriverManager.getConnection("jdbc:sqlite:/f:/test.db", //jdbc:oracle:thin:@hex:1521:ORCL"", "");conn.setAutoCommit(false);stmt = conn.createStatement();stmt.executeUpdate("create table hehe(id number, name varchar(32))");System.out.println("建表hehe成功!");for (int i=0; i<1000000; i++){stmt.executeUpdate("INSERT INTO hehe VALUES("+i+", '我爱中国"+i+"')");}conn.commit();System.out.println("不建索引查询:");System.out.println(new java.util.Date());rset = stmt.executeQuery("SELECT id, name FROM hehe where id > 499999 and name ='我爱中国500001'");if (rset.next()){System.out.println(rset.getInt("id"));System.out.println(rset.getString("name"));}if (rset!=null){ rset.close(); rset = null; }System.out.println(new java.util.Date());System.out.println("建索引:");System.out.println(new java.util.Date());stmt.executeUpdate("CREATE INDEX hehe_idx on hehe(id)");stmt.executeUpdate("CREATE INDEX hehe_idx2 on hehe(name)");conn.commit();System.out.println(new java.util.Date());System.out.println("建索引后的查询:");System.out.println(new java.util.Date());rset = stmt.executeQuery("SELECT id, name FROM hehe where id > 499999 and name = '我爱中国500001'");if (rset.next()){System.out.println(rset.getInt("id"));System.out.println(rset.getString("name"));}System.out.println(new java.util.Date());stmt.executeUpdate("drop table hehe");System.out.println("删除表hehe成功!");conn.commit();System.out.println(new java.util.Date());} catch(ClassNotFoundException cnfe) {System.out.println("Can't find class for driver: "+cnfe.getMessage());System.exit(-1);} catch (SQLException e){System.out.println(e.getMessage());System.exit(-1);} finally {try {if (rset!=null) rset.close();stmt.close();conn.close();} catch (SQLException e) {}}}public static void main(String[] args) {TestConn conn = new TestConn();conn.test();}
}

转载于:https://www.cnblogs.com/elect-fans/archive/2012/08/09/2630612.html

sqlite3数据库的性能问题报告相关推荐

  1. sqlite3数据库最大可以是多大?可以存放多少数据?读写性能怎么样?

    本文是转载自:sqlite3数据库最大可以是多大?可以存放多少数据?读写性能怎么样? sqlite是款不错的数据库,使用方便,不需要事先安装软件,事先建表.很多人担心它的性能和数据存储量问题. 比如有 ...

  2. deno如何连接mysql_c 连接sqlite3数据库

    SQLite C语言接口 数据表设计 create table tbl_emp( id integer primary key , name varchar(40), age smallint, bi ...

  3. Golang操作sqlite3数据库教程

    Golang操作sqlite3数据库教程 本文介绍sqlite数据库,如何使用sqlite3包操作轻量级关系型数据库. sqlite概述 sqlite是嵌入式关系型数据库引擎,官方描述为自包含的.无服 ...

  4. Andriod SQLite3 数据库损坏,优化,修复,备份方案研究

    Andriod Sqlite3 数据库损坏,修复,备份方案研究 1.数据库损坏原因 我们首先来看 SQLite 损坏的原因,SQLite官网<How To Corrupt An SQLite D ...

  5. 【数据库】sqlite3数据库备份、导出方法汇总

    [数据库]sqlite3常用命令及SQL语句 目录 1.直接拷贝数据库 2.使用.backup .clone 1)交互式 2)脚本 3.导出到csv文件中(其它格式类似) 1)交互式 2)脚本 3)导 ...

  6. 大规模数据库的性能改善方法之一 数据分割

    大规模数据库的性能改善方法之一 数据分割 http://blog.sina.com.cn/s/blog_803d9ba90100xg25.html 1.引言 随着计算机应用领域的拓展和计算机硬件性能的 ...

  7. 如何对DB2数据库做性能分析?

    如何对DB2数据库做性能分析? 第一步 操作系统级别性能 CPU监控: ps -elf | sort +5 -rn | more 第6列代表CPU使用的计数器 I/O使用率: iostat -D 收集 ...

  8. c从sqlite3数据库中获取数据,并对数据进行拼接

    c从sqlite3数据库中获取数据,并对数据进行拼接 函数功能 对数据库的操作 创建数据库: 创建USER表: 创建表内数据: 查看表内数据: 查看表结构: 函数实现 函数编译: 函数结果: 函数功能 ...

  9. 【Android 逆向】应用数据目录 ( files 数据目录 | lib 应用自带 so 动态库目录 | databases sqlite3 数据库目录 | cache 缓存目录 )

    文章目录 一.应用数据目录 /data/data/package.name/files 二.自带 so 动态库 /data/data/package.name/lib 三.数据库文件 /data/da ...

最新文章

  1. Springmvc文件上传(servlet3.0)/下载(ssm)以及坑点
  2. 优美的测试代码 - 行为驱动开发(BDD)
  3. 如何修改Win11睡眠时间
  4. 机器学习集成模型学习——Stacking集成学习(五)
  5. 生产者消费者伪码_[线程同步]生产者消费者代码实现
  6. 定时器2用做uart的波特率发生器
  7. U盘刻录系统之后变小
  8. Wonderware-InTouch 使用 Web 网页控件显示报表
  9. java 生成高清缩略图_java生成高清缩略图
  10. html5在线画板菱形怎么画,HTML5 Canvas 制作一个“在线画板”
  11. 【WINRAR安装和使用教程】常用压缩软件
  12. 利用百度AI开放平台 实现 图片中的文字识别
  13. 同一个基站连接两个核心网AMF POOL的场景分析及带AMF重选的注册流程
  14. 电子学:第010课——实验 9:时间与电容器
  15. java highchart统计图_java+highchart实现分类下钻柱形图
  16. WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers
  17. 100个囚犯的脱狱问题
  18. 机器学习日记(13)
  19. AndroidStudio系统广播Broadcast电话监听
  20. java 新达达_互联网的众包模式是怎么产生和兴起的,这种模式应用到不同的业务上会有哪些问题?...

热门文章

  1. java 搜索文件 pdf_Java查找并高亮PDF文本过程解析
  2. 四位共阳极数码管显示函数_Verilog笔记
  3. python顺时针打印矩阵_python实现顺时针打印矩阵
  4. mysql8.0.13安装版_windows下mysql 8.0.13 解压版安装图文教程
  5. matplotlib如何绘制两点间连线_如何用 Python 快速揭示数据之间的各种关系
  6. python画数学曲线_python学习笔记28:画函数曲线图
  7. ip打包相对路径 vivado_Vivado自定义IP封装流程
  8. qemu交叉编译arm内核_arm qemu (1) 内核启动调试环境搭建
  9. oracle 导出数据 utl,【原创】利用utl_file包进行表数据导出
  10. USG防火墙单出口接入互联网