当前位置: 首页 > 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.hkea.cn/news/605930/

相关文章:

  • 中国建设承包商网站创建软件平台该怎么做
  • 中小企业网站建设费用海外推广服务
  • 企业名称的英文做网站名seo是怎么优化推广的
  • 手机在线建站西安seo服务公司
  • 网站开发有前途吗我也要投放广告
  • 备案 网站名称怎么写crm软件
  • 扁平式网站模板b2b网站推广优化
  • 做外贸网站网络营销咨询服务
  • 江门网站建设方案报价淘宝seo优化怎么做
  • 盘龙城做网站推广网站推广
  • 如何做电子书网站域名站长工具
  • 物联网平台有哪些排名优化外包公司
  • 秦皇岛汽车网站制作数字营销工具
  • 培训教育的网站怎么做东莞做网站的联系电话
  • 云南做网站的公司外贸谷歌优化
  • 网页设计学徒培训可试学巢湖seo推广
  • 让顾客心动的句子seo模拟点击软件源码
  • 设计类专业包括哪些kj6699的seo综合查询
  • 手机网站制作哪家好查关键词
  • 米拓企业网站管理系统电商培训机构排名前十
  • 做效果图有哪些网站seo点击排名
  • 网络营销推广网站收录seo推广排名平台有哪些
  • 产品经理如何看待网站开发广州软件系统开发seo推广
  • wordpress 忘记管理员如何做网站seo
  • app和网站哪个有优势淘宝关键词排名
  • wordpress该域名宁波网站seo公司
  • 建购物网站怎么建呀简单的网站建设
  • 江苏省建设教育协会网站首页百度知道合伙人答题兼职入口
  • 做优化的网站平台搭建
  • 做网站需要多久网络推广是什么专业