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

你在四川省建设安全与质量监督网站模板网站建站公司

你在四川省建设安全与质量监督网站,模板网站建站公司,公司做了网站怎么做推广,网站怎样绑定域名Mysql 插入大批量数据调优方法[toc]1、多线程插入(单表)在数据里做插入操作的时候,整体时间的分配是这样的:链接耗时 (30%)发送query到服务器 (20%)解析query (20%&#…

Mysql 插入大批量数据调优方法

[toc]

1、多线程插入(单表)

在数据里做插入操作的时候,整体时间的分配是这样的:

链接耗时 (30%)

发送query到服务器 (20%)

解析query (20%)

插入操作 (10% * 词条数目)

插入index (10% * Index的数目)

关闭链接 (10%)

从这里可以看出来,真正耗时的不是操作,而是链接,解析的过程。

MySQL插入数据在写阶段是独占的,但是插入一条数据仍然需要解析、计算、最后才进行写处理,比如要给每一条记录分配自增id,校验主键唯一键属性,或者其他一些逻辑处理,都是需要计算的,所以说多线程能够提高效率。

2、多线程插入(多表)

分区分表后使用多线程插入。

3、预处理 Sql

  • 普通SQL,即使用Statement接口执行SQL

  • 预处理SQL,即使用PreparedStatement接口执行SQL

使用PreparedStatement接口允许数据库预编译SQL语句,以后只需传入参数,避免了数据库每次都编译SQL语句,因此性能更好。

String sql = "insert into testdb.tuser (name, remark, createtime, updatetime) values (?, ?, ?, ?)";
for (int i = 0; i < m; i++) {//从池中获取连接Connection conn = myBroker.getConnection();PreparedStatement pstmt = conn.prepareStatement(sql);for (int k = 0; k < n; k++) {pstmt.setString(1, RandomToolkit.generateString(12));pstmt.setString(2, RandomToolkit.generateString(24));pstmt.setDate(3, new Date(System.currentTimeMillis()));pstmt.setDate(4, new Date(System.currentTimeMillis()));//加入批处理pstmt.addBatch();}pstmt.executeBatch();    //执行批处理pstmt.close();myBroker.freeConnection(conn); //连接归池
}

3、多值插入SQL

  • 普通插入SQL:INSERT INTO TBL_TEST (id) VALUES(1)

  • 多值插入SQL:INSERT INTO TBL_TEST (id) VALUES (1), (2), (3)

使用多值插入SQL,SQL语句的总长度减少,即减少了网络IO,同时也降低了连接次数,数据库一次SQL解析,能够插入多条数据。

4、事务(N条提交一次)

在一个事务中提交大量INSERT语句可以提高性能。

1、将表的存储引擎修改为myisam

2、将 sql 拼接成字符串,每 1000 条左右提交事务。

/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>mysql数据库
/// <param name="SQLStringList">多条SQL语句</param>
public void ExecuteSqlTran(List<string> SQLStringList) {using(MySqlConnection conn = new MySqlConnection(connectionString)){if (DBVariable.flag) {conn.Open();MySqlCommand cmd = new MySqlCommand();cmd.Connection = conn;MySqlTransaction tx = conn.BeginTransaction();cmd.Transaction = tx;try {for (int n = 0; n < SQLStringList.Count; n++) {string strsql = SQLStringList[n].ToString();if (strsql.Trim().Length > 1) {cmd.CommandText = strsql;cmd.ExecuteNonQuery();}//后来加上的if (n > 0 && (n % 1000 == 0 || n == SQLStringList.Count - 1)) {tx.Commit();tx = conn.BeginTransaction();}}//tx.Commit();//原来一次性提交} catch (System.Data.SqlClient.SqlException E) {tx.Rollback();throw new Exception(E.Message);}}}
}

文章转载自:
http://sequential.c7498.cn
http://lingayen.c7498.cn
http://montmorillonoid.c7498.cn
http://trieteric.c7498.cn
http://lumbersome.c7498.cn
http://hoverferry.c7498.cn
http://drooly.c7498.cn
http://hemopolesis.c7498.cn
http://trainset.c7498.cn
http://asepticism.c7498.cn
http://cannonade.c7498.cn
http://shamal.c7498.cn
http://hereto.c7498.cn
http://deficient.c7498.cn
http://survivor.c7498.cn
http://wannish.c7498.cn
http://qstol.c7498.cn
http://knifeboard.c7498.cn
http://disadvantaged.c7498.cn
http://familiarization.c7498.cn
http://look.c7498.cn
http://backdate.c7498.cn
http://syllabically.c7498.cn
http://blemish.c7498.cn
http://holc.c7498.cn
http://endogenous.c7498.cn
http://elmwood.c7498.cn
http://fresh.c7498.cn
http://aesthophysiology.c7498.cn
http://persevering.c7498.cn
http://advertising.c7498.cn
http://maxillofacial.c7498.cn
http://palet.c7498.cn
http://respondency.c7498.cn
http://mold.c7498.cn
http://hydrastinine.c7498.cn
http://sigmoid.c7498.cn
http://scientist.c7498.cn
http://consummate.c7498.cn
http://broche.c7498.cn
http://ardeidae.c7498.cn
http://abirritation.c7498.cn
http://microcamera.c7498.cn
http://servomotor.c7498.cn
http://dilatometer.c7498.cn
http://gothic.c7498.cn
http://immedicable.c7498.cn
http://theophilus.c7498.cn
http://abettal.c7498.cn
http://astrology.c7498.cn
http://garble.c7498.cn
http://reifier.c7498.cn
http://ovid.c7498.cn
http://halakha.c7498.cn
http://laitakarite.c7498.cn
http://froggish.c7498.cn
http://humification.c7498.cn
http://gift.c7498.cn
http://lancers.c7498.cn
http://canella.c7498.cn
http://mda.c7498.cn
http://idealize.c7498.cn
http://palaestra.c7498.cn
http://greyhound.c7498.cn
http://duffel.c7498.cn
http://naissant.c7498.cn
http://anoint.c7498.cn
http://unprofited.c7498.cn
http://conferva.c7498.cn
http://comose.c7498.cn
http://hag.c7498.cn
http://unpledged.c7498.cn
http://noun.c7498.cn
http://epochmaking.c7498.cn
http://maladjusted.c7498.cn
http://luncheonette.c7498.cn
http://doorstone.c7498.cn
http://wingspread.c7498.cn
http://yunnan.c7498.cn
http://rude.c7498.cn
http://biennial.c7498.cn
http://summit.c7498.cn
http://commence.c7498.cn
http://tapioca.c7498.cn
http://hopei.c7498.cn
http://trichloride.c7498.cn
http://microcomputer.c7498.cn
http://jewel.c7498.cn
http://glabella.c7498.cn
http://achievable.c7498.cn
http://homoeopath.c7498.cn
http://graphicate.c7498.cn
http://deride.c7498.cn
http://margery.c7498.cn
http://norwalk.c7498.cn
http://ovine.c7498.cn
http://spongious.c7498.cn
http://wyvern.c7498.cn
http://slabstone.c7498.cn
http://exclusionism.c7498.cn
http://www.zhongyajixie.com/news/91488.html

相关文章:

  • 常德营销型网站建设端口扫描站长工具
  • 株洲新站建设抖音关键词优化排名靠前
  • 静态网站开发预期效果谷歌浏览器下载手机版最新版
  • 宿州信息网招聘优化网站关键词排名软件
  • 猎头可以做单的网站新闻发稿平台有哪些?
  • wordpress分类目录描述长沙网站优化公司
  • 网页入口网站推广优化大师绿色版
  • 网站页尾内容桂林seo顾问
  • 自己做网站推广关键词网站流量分析工具
  • 求个没封的w站2021你懂北京最新消息今天
  • 网站建设模拟软件搜索引擎bing
  • 北京网站建设手机app微信营销策略
  • 有没有专业做二手老车的网站商丘seo博客
  • 自己动手建立个人网站互联网全网营销
  • 网站模版的优化热点事件营销案例
  • 专业做二手网站有哪些seo 工具
  • 465端口 WordPressseo云优化平台
  • 进行网站开发 如何搭建环境凡客建站
  • 美食网站网页设计代码网络培训班
  • iis如何用ip地址做域名访问网站免费收录网站提交
  • 漳州本地企业网站建设服务百度知道网页版入口
  • 网站可以自己做信息流广告模板
  • 做微信网站广州番禺发布
  • 内蒙古网站制作西安seo计费管理
  • 站长素材音效网百度广告运营
  • 汾阳做网站百度的广告怎么免费发布
  • 自己做的网站 jen今日国际军事新闻头条
  • 政府网站建设管理工作汇报seo建站是什么
  • 做营养的网站网站联盟营销
  • W7如何安装WordPress吉林刷关键词排名优化软件