全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

MySql批量插入优化Sql执行效率实例详解

MySql批量插入优化Sql执行效率实例详解

itemcontractprice数量1万左右,每条itemcontractprice 插入5条日志。

updateInsertSql.AppendFormat("UPDATE itemcontractprice AS p INNER JOIN foreigncurrency AS f ON p.ForeignCurrencyId = f.ContractPriceId SET p.RemainPrice = f.RemainPrice * {0},p.BuyOutPrice = f.BuyOutPrice * {0},p.ReservedPrice = f.ReservedPrice * {0},p.CollectedPrice = f.CollectedPrice * {0},p.AccessPrice = f.AccessPrice * {0} WHERE p.CurrencyId = {1} AND p.date BETWEEN '{2:yyyy-MM-dd}' AND '{3:yyyy-MM-dd}';", rate.ExchangeRate, exchangeRate.CurrencyId, rate.BeginDate, rate.EndDate); 
 
updateInsertSql.AppendFormat("INSERT INTO `itemcontractpricelog`(`ContractPriceType`,`ContractPrice`,`FcContractPrice`,`IsExpire`,`LogRemark`,`CreatedByName`,`CreatedById`,`CreatedDate`,`LogTypeId`,`ProviderId`,`StageId`,`Date`,`CurrencyId`,`ContractPriceId`,`StockPattern`,`ItemId`) SELECT 0,c.RemainPrice,f.RemainPrice,c.RemainIsExpire,'外币汇率调整,重新计算人民币底价','job',0,NOW(),5,c.ProviderId,c.StageId,c.Date,c.CurrencyId,c.ContractPriceId,0,c.ItemId FROM itemcontractprice AS c INNER JOIN foreigncurrency AS f ON c.ForeignCurrencyId = f.ContractPriceId WHERE c.CurrencyId={0} AND c.date BETWEEN '{1:yyyy-MM-dd}' AND '{2:yyyy-MM-dd}';", exchangeRate.CurrencyId, rate.BeginDate, rate.EndDate); 
 
updateInsertSql.AppendFormat(" INSERT INTO `itemcontractpricelog`(`ContractPriceType`,`ContractPrice`,`FcContractPrice`,`IsExpire`,`LogRemark`,`CreatedByName`,`CreatedById`,`CreatedDate`,`LogTypeId`,`ProviderId`,`StageId`,`Date`,`CurrencyId`,`ContractPriceId`,`StockPattern`,`ItemId`) SELECT 1,c.BuyOutPrice,f.BuyOutPrice,c.BuyOutIsExpire,'外币汇率调整,重新计算人民币底价','job',0,NOW(),5,c.ProviderId,c.StageId,c.Date,c.CurrencyId,c.ContractPriceId,0,c.ItemId FROM itemcontractprice AS c INNER JOIN foreigncurrency AS f ON c.ForeignCurrencyId = f.ContractPriceId WHERE c.CurrencyId={0} AND c.date BETWEEN '{1:yyyy-MM-dd}' AND '{2:yyyy-MM-dd}';", exchangeRate.CurrencyId, rate.BeginDate, rate.EndDate); 
 
updateInsertSql.AppendFormat("INSERT INTO `itemcontractpricelog`(`ContractPriceType`,`ContractPrice`,`FcContractPrice`,`IsExpire`,`LogRemark`,`CreatedByName`,`CreatedById`,`CreatedDate`,`LogTypeId`,`ProviderId`,`StageId`,`Date`,`CurrencyId`,`ContractPriceId`,`StockPattern`,`ItemId`) SELECT 2,c.ReservedPrice,f.ReservedPrice,c.ReservedIsExpire,'外币汇率调整,重新计算人民币底价','job',0,NOW(),5,c.ProviderId,c.StageId,c.Date,c.CurrencyId,c.ContractPriceId,0,c.ItemId FROM itemcontractprice AS c INNER JOIN foreigncurrency AS f ON c.ForeignCurrencyId = f.ContractPriceId WHERE c.CurrencyId={0} AND c.date BETWEEN '{1:yyyy-MM-dd}' AND '{2:yyyy-MM-dd}';", exchangeRate.CurrencyId, rate.BeginDate, rate.EndDate); 
 
updateInsertSql.AppendFormat("INSERT INTO `itemcontractpricelog`(`ContractPriceType`,`ContractPrice`,`FcContractPrice`,`IsExpire`,`LogRemark`,`CreatedByName`,`CreatedById`,`CreatedDate`,`LogTypeId`,`ProviderId`,`StageId`,`Date`,`CurrencyId`,`ContractPriceId`,`StockPattern`,`ItemId`) SELECT 3,c.CollectedPrice,f.CollectedPrice,c.CollectedIsExpire,'外币汇率调整,重新计算人民币底价','job',0,NOW(),5,c.ProviderId,c.StageId,c.Date,c.CurrencyId,c.ContractPriceId,0,c.ItemId FROM itemcontractprice AS c INNER JOIN foreigncurrency AS f ON c.ForeignCurrencyId = f.ContractPriceId WHERE c.CurrencyId={0} AND c.date BETWEEN '{1:yyyy-MM-dd}' AND '{2:yyyy-MM-dd}';", exchangeRate.CurrencyId, rate.BeginDate, rate.EndDate); 
updateInsertSql.AppendFormat("INSERT INTO `itemcontractpricelog`(`ContractPriceType`,`ContractPrice`,`FcContractPrice`,`IsExpire`,`LogRemark`,`CreatedByName`,`CreatedById`,`CreatedDate`,`LogTypeId`,`ProviderId`,`StageId`,`Date`,`CurrencyId`,`ContractPriceId`,`StockPattern`,`ItemId`) SELECT 4,c.AccessPrice,f.AccessPrice,c.AccessIsExpire,'外币汇率调整,重新计算人民币底价','job',0,NOW(),5,c.ProviderId,c.StageId,c.Date,c.CurrencyId,c.ContractPriceId,0,c.ItemId FROM itemcontractprice AS c INNER JOIN foreigncurrency AS f ON c.ForeignCurrencyId = f.ContractPriceId WHERE c.CurrencyId={0} AND c.date BETWEEN '{1:yyyy-MM-dd}' AND '{2:yyyy-MM-dd}';", exchangeRate.CurrencyId, rate.BeginDate, rate.EndDate); 
//var curContractPriceList = itemContractPriceList.Where(o => o.CurrencyId == exchangeRate.CurrencyId && o.Date >= rate.BeginDate && o.Date <= rate.EndDate).ToList(); 
logger.InfoFormat("底价更新和日志sql:{0}", updateInsertSql.ToString()); 
//if (curContractPriceList.Count == 0) continue; 
int effctRows = 0; 
using (var tran = UnitOfWorkManager.Begin()) 
{ 
  effctRows = taskRepository.ExecuteSql(updateInsertSql.ToString(), false); 
  tran.Complete(); 
} 
logger.InfoFormat("底价更新影响行数:{0}", effctRows); 

正常情况下大概20秒钟就ok.

之前是用EF操作,查询出来 ,要耗时,然后再组装 update语句 ,然后再插入日志(每条数据5条日志),这个网络交互的时间加上数据库连接打开关闭的时间,总的执行时间,大概10多分钟。

用sql语句批量操作,可以说效率提升了 40倍,就是大量数据的传输和数据库的处理次数耗时。

所以说,软件开发不是开发完成就行,而是要解决性能上的问题,这才是开发的进阶。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# MySql批量插入优化Sql执行效率  # MySql  # 优化Sql效率  # mysql大批量插入数据的4种方法示例  # MYSQL批量插入数据的实现代码  # MySQL实现批量插入以优化性能的教程  # MySQL批量插入遇上唯一索引避免方法  # Mysql使用insert插入多条记录 批量新增数据  # mysql 循环批量插入的实例代码详解  # MySQL批量插入数据脚本  # MySQL批量SQL插入性能优化详解  # MySQL通过函数存储过程批量插入数据  # 然后再  # 新和  # 每条  # 进阶  # 可以说  # 执行时间  # 就行  # 希望能  # 谢谢大家  # 行数  # 情况下  # 这才是  # 而是要  # exchangeRate  # dd 


相关文章: 如何用腾讯建站主机快速创建免费网站?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  如何高效完成自助建站业务培训?  高端企业智能建站程序:SEO优化与响应式模板定制开发  如何在腾讯云服务器快速搭建个人网站?  如何在服务器上配置二级域名建站?  如何批量查询域名的建站时间记录?  广州美橙建站如何快速搭建多端合一网站?  如何高效生成建站之星成品网站源码?  网站网页制作专业公司,怎样制作自己的网页?  小型网站制作HTML,*游戏网站怎么搭建?  做企业网站制作流程,企业网站制作基本流程有哪些?  网站制作说明怎么写,简述网页设计的流程并说明原因?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何通过商城免费建站系统源码自定义网站主题?  如何在云主机上快速搭建多站点网站?  北京网站制作公司哪家好一点,北京租房网站有哪些?  北京网站制作网页,网站升级改版需要多久?  广州营销型建站服务商推荐:技术优势与SEO优化解析  定制建站方案优化指南:企业官网开发与建站费用解析  建站168自助建站系统:快速模板定制与SEO优化指南  沈阳制作网站公司排名,沈阳装饰协会官方网站?  如何在云虚拟主机上快速搭建个人网站?  如何用IIS7快速搭建并优化网站站点?  如何在IIS中新建站点并解决端口绑定冲突?  专业网站建设制作报价,网页设计制作要考什么证?  制作网站的软件免费下载,免费制作app哪个平台好?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  如何用美橙互联一键搭建多站合一网站?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  C++时间戳转换成日期时间的步骤和示例代码  建站之星备案是否影响网站上线时间?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  网站制作报价单模板图片,小松挖机官方网站报价?  想学网站制作怎么学,建立一个网站要花费多少?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  如何配置支付宝与微信支付功能?  如何快速生成专业多端适配建站电话?  如何通过PHP快速构建高效问答网站功能?  如何获取上海专业网站定制建站电话?  建站之星安装需要哪些步骤及注意事项?  如何快速启动建站代理加盟业务?  网站制作模板下载什么软件,ppt模板免费下载网站?  ,石家庄四十八中学官网?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  5种Android数据存储方式汇总  网站微信制作软件,如何制作微信链接?  高端云建站费用究竟需要多少预算?  实惠建站价格推荐:2025年高性价比自助建站套餐解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。