当前位置: 首页 > news >正文

竹子系统做的网站可以优化么保定到沧州

竹子系统做的网站可以优化么,保定到沧州,wordpress自定义分类模板下载,网络货运平台有哪些在尝试过SQLite批量插入一百万条记录,执行时长高达20多分钟后,就在想一个问题,这样的性能是不可能被广泛应用的,更不可能出现在真实的生产环境中,那么对此应该如何优化一下呢? 首先分析一下批量插入的逻辑 …

在尝试过SQLite批量插入一百万条记录,执行时长高达20多分钟后,就在想一个问题,这样的性能是不可能被广泛应用的,更不可能出现在真实的生产环境中,那么对此应该如何优化一下呢?

首先分析一下批量插入的逻辑

//循环插入1,000,000条记录
for (int i = 0; i < 1000000; i++) {//执行插入操作rowsInserted = pstmt.executeUpdate();
}
//输出计时

上述代码创建一个循环,循环一百万次,每一次循环更新插入一条数据,这样一来就是对数据库操作了一百万次,虽然实现了批量操作,但是却对数据库造成了很大的开销,如果数据量再进一步扩大,此方法保不齐会让服务崩掉,所以这不是个最优解。

能不能对数据库只操作一次,就能实现数据的批量操作呢?

事务

我可以开启一个事务,把一百万次的循环插入放到一个批处理中,最后提交事务,这样一来只对数据库进行一次操作实现数据批量插入。

接下来设计代码:

import java.sql.*;public class SQLiteBatchInsert {public static void main(String[] args) {Connection conn = null;PreparedStatement pstmt = null;try {//建立数据库连接Class.forName("org.sqlite.JDBC");conn = DriverManager.getConnection("jdbc:sqlite:D:\\env\\SQLite\\data\\user.db");//设置手动提交事务conn.setAutoCommit(false);String tableName = "user";// 准备SQL语句String sql = "INSERT INTO " + tableName + " (name, age) VALUES (?,?)";pstmt = conn.prepareStatement(sql);//批量添加数据for (int i = 0; i < 1000000; i++) {pstmt.setString(1, "王五");pstmt.setString(2, "25");pstmt.addBatch();}// 记录执行开始时间double startTime = System.currentTimeMillis();//执行批处理pstmt.executeBatch();//提交事务conn.commit();//记录执行结束时间double endTime = System.currentTimeMillis();double duration = endTime - startTime;System.out.println("Batch insert successful!");System.out.println("执行时间为:"+duration/1000+"s");} catch (SQLException | ClassNotFoundException e) {e.printStackTrace();if (conn != null) {try {//如果出现异常,回滚事务conn.rollback();} catch (SQLException ex) {ex.printStackTrace();}}} finally {//关闭资源try {if (pstmt != null) pstmt.close();if (conn != null) conn.close();} catch (SQLException e) {e.printStackTrace();}}}
}

运行后发现,执行时间惊人的只有 1s 左右

请添加图片描述

为了验证这一结果,我不得不去数据库里查一下,果不其然插入成功

请添加图片描述

看来,SQLite 利用事务执行批量操作完全是个可行的方案,大大的降低了对数据库的开销,极大的减少了执行时间,效率有了质的提升。


http://www.yayakq.cn/news/350155/

相关文章:

  • 建设银行余额查询网站官方网站后台怎样做超链接
  • iis 发布网站内部服务器错误商城网站制作公司
  • 信息网站建设费使用年限网页制作主题成品
  • 学广告设计难不难微博seo营销
  • 衡水做网站价格郴州网站制作公司在哪里
  • 开淘宝店做网站开发网络营销4c策略是什么
  • 网站版本功能列表设计师培训内容
  • 学校网站建设具体分工wordpress define
  • 网站怎么做用qq登录接入小程序api接口怎么对接
  • 南宁手机网站制作做网站用什么ps软件
  • 网站建设专业特长acaa平面设计师证书报名费
  • 长沙市住房和建设局官方网站wordpress frame主题
  • 外贸多语言网站建设如何删除在凡科上做的网站
  • 纺织品公司网站建设火车头采集 wordpress
  • 化工网站制作苏州做网站公司怎么样
  • 网站开发人员分配广州市网站制作
  • 哪些网站页面简洁建材网站建设
  • 牛商网专注营销型网站建设网站忧化 推广同时做
  • 鱼台建设局网站长春火车站地下停车场收费标准
  • wordpress mssql上海seo推广平台
  • 定制营销型网站什么意思全网营销推广方案
  • 网站维护推广表电子商务网站建设评价论文
  • 如何做软件类型的网站惠阳做网站公司
  • 重庆市建设工程信息官方网站编程网站scratch
  • 如何建设线报网站wordpress用户管理解决方案
  • 如何做网站流量域名到期查询
  • 重庆网站建站系统哪家好吉林省吉林市是几线城市
  • 里水网站设计wordpress 增加页面
  • 做网站版权怎么写什么是网络营销有哪些特点
  • 青岛工程建设管理信息网站下载玉溪市住房城乡建设局网站