Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C语言中提高MySQL插入选择的性能_C#_Mysql - Fatal编程技术网

C# 在C语言中提高MySQL插入选择的性能

C# 在C语言中提高MySQL插入选择的性能,c#,mysql,C#,Mysql,我需要一些关于在MySql数据库表中插入大量记录的建议。我目前正在将大量行90.000从两个表存储到另一个表,这需要很长时间 这是我当前的代码: 私有无效合并\u表\u单击对象发送方,事件参数e { //在插入数据之前从练习中删除记录。 删除记录和练习; //从表data和bilan插入数据到表exercices。 string MergeTables=@插入练习annee、AA、DL、DO、DR、DS、DT、DU、DV、EH、ED、BK、CM、BJ、CL、CN、EE、AO、AQ、AS1、AV

我需要一些关于在MySql数据库表中插入大量记录的建议。我目前正在将大量行90.000从两个表存储到另一个表,这需要很长时间

这是我当前的代码:

私有无效合并\u表\u单击对象发送方,事件参数e { //在插入数据之前从练习中删除记录。 删除记录和练习; //从表data和bilan插入数据到表exercices。 string MergeTables=@插入练习annee、AA、DL、DO、DR、DS、DT、DU、DV、EH、ED、BK、CM、BJ、CL、CN、EE、AO、AQ、AS1、AV、AW、AY、AN、AP、AR、AT、AU、AX、CJ、CH、CK、CI、GR、EC、, 电子束 ,YS ,佛罗里达州 ,顾 ,FP ,GA ,GB ,GC ,广东省 转基因的 ,GQ 哈 他 ,HJ ,香港 ,GW ,DX ,DY ,DZ ,EA ,调频 ,FN ,财政司司长 ,FV 傅 ,FW ,YP ,英尺 ,财政年度 ,FZ ,FO ,外汇 ,BV ,BX ,BZ ,CB 光盘 查阅 ,BW ,比1 ,约 ,CC ,行政长官 ,CG ,DI ,KC ,KF ,LP 我的 ,北卡罗来纳州 ,公司 ,AB 公元 ,AF 啊 ,AJ 艾尔 ,福建 ,BL ,BN ,英国石油公司 ,BR ,英国电信 ,博 ,BQ ,英国 ,GE ,DW ,FC ,HN ,BM ,宗派 ,NAF2 区域 ,部门 ,汽笛 任命 ,effectif ,chiffre_affaire ,BU ,YY ,YZ 汽笛 ,AC ,AE 哎 ,AK 是 ,CS ,CT ,铜 个人简历 ,BB ,公元前 ,BD 是 ,男朋友 ,BG ,BH ,毕 ,1A ,GJ ,爸爸 ,DC ,EK ,DD ,DE ,DF ,B1 ,DG ,EJ ,DH 流行音乐播音员 ,DK ,DM ,DN 数据处理 ,DQ ,EI ,FA ,FB ,FD ,FE ,FF ,FG ,FH ,FI ,FK ,FQ ,FR ,FWbis ,GF 游戏打得好 ,生长激素 ,GI ,GJ1 ,GK ,德国劳埃德船级社 ,GN 去 ,GP ,GS ,GT ,GV ,血红蛋白 ,HC ,高清 ,HF ,HG ,HH 你好 ,HL 陛下 ,EQ ,DB ,AG ,EB1 选择e1.annee、e1.AA、e1.DL、e1.DO、e1.DR、e1.DS、e1.DT、e1.DU、e1.DV、e1.EH、e1.ED、e1.BK、e1.CM、e1.BJ、e1.CL、e1.CN、e1.EE、e1.AO、e1.AQ、e1.AS1、e1.AV、e1.AY、e1.AN、e1.AP、e1.AR、e1.AT、e1.AU、e1.AX、e1.CJ、e1.CH、e1.CK、e1.CI、e1.GR、e1.EC、, e1.EB ,e1.YS ,e1.FL ,e1.GU ,e1.FP ,e1.GA ,e1.GB ,e1.GC ,e1.GD ,e1.GM ,e1.GQ ,e1.HA ,e1.HE ,e1.HJ ,e1.HK ,e1.GW ,e1.DX ,e1.DY ,e1.DZ ,e1.EA ,e1.FM ,e1.FN ,e1.FS ,e1.FV ,e1.FU ,e1.FW ,e1.YP ,e1.FT ,e1.FY ,e1.FZ ,e1.FO ,e1.FX ,e1.BV ,e1.BX ,e1.BZ ,e1.CB ,e1.CD ,e1.CF ,e1.BW ,e1.BY1 ,e1.CA ,e1.CC ,e1.CE ,e1.CG ,e1.DI ,e1.KC ,e1.KF ,e1.LP ,e1.MY ,e1.NC ,e1.CO ,e1.AB ,e1.AD ,e1.AF ,e1.AH ,e1.AJ ,e1.AL ,e1.FJ ,e1.BL ,e1.BN ,e1.BP ,e1.BR ,e1.BT ,e1.BO ,e1.BQ ,e1.BS ,e1.GE ,e1.DW ,e1.FC ,e1.HN ,e1.BM ,e2.secteur ,e2.NAF2 ,e2.1区域 ,e2.部门 ,e2.海妖 ,e1.名称 ,e2.if ,e2.chiffre_affaire ,e1.BU ,e1.YY ,e1.YZ ,e1.警报器 ,e1.AC ,e1.AE ,e1.AI ,e1.AK ,e1.AM ,e1.CS ,e1.CT ,e1.CU ,e1.CV ,e1.BB ,e1.BC ,e1.BD ,e1.BE ,e1.BF ,e1.BG ,e1.BH ,e1.BI ,e1.1A ,e1.GJ ,e1.DA ,e1.DC ,e1.EK ,e1.DD ,e1.DE ,e1.DF ,e1.B1 ,e1.DG ,e1.EJ ,e1.DH ,e1.DJ ,e1.DK ,e1.DM ,e1.DN ,e1.DP ,e1.DQ ,e1.EI ,e1.FA ,e1.FB ,e1.FD ,e1.FE ,e1.FF ,e1.FG ,e1.FH ,e1.FI ,e1.FK ,e1.FQ ,e1.FR ,e1.FWbis ,e1.GF ,e1.GG ,e1.GH ,e1.GI ,e1.GJ1 ,e1.GK ,e1.GL ,e1.GN ,e1.GO ,e1.GP ,e1.GS ,e1.GT ,e1.GV ,e1.HB ,e1.HC ,e1.HD ,e1.HF ,e1.HG ,e1.HH ,e1.HI ,e1.HL ,e1.HM ,e1.EQ ,e1.DB ,e1.AG ,e1.EB1 从bilan e1连接数据e2 其中e1.siren=e2.siren ; 字符串serverIp=127.0.0.1; 字符串username=root; 字符串密码=根; 字符串databaseName=altares; string dbConnectionString=string.Formatserver={0};uid={1};pwd={2};数据库={3};SslMode=none;连接超时=600,服务器IP,用户名,密码,数据库名称; var conn=新的MySqlConnectiondbConnectionString; 康涅狄格开放大学; var cmd=新的MySqlCommandMergeTables,conn; cmd.CommandTimeout=86400; cmd.ExecuteNonQuery; 康涅狄格州关闭; 删除表格和数据; MessageBox.ShowTable练习现在有数据!!; } 联接必须使用ON子句,而不是WHERE子句。替换:

FROM bilan e1 JOIN data e2
WHERE e1.siren = e2.siren


然后检查您是否正确索引了每个表中的列siren

Ludovic Feltz回答了相同的问题,但我将尝试更具体一些:

您将无法加快基本的插入速度。花费时间的是在SELECT语句中进行连接。未编制索引的列上的联接速度非常慢。为了加快速度,您需要在e1.siren和e2.siren上添加索引。

您能简化您的qu吗
这样我们就更容易阅读了?两个表上都有Siren的索引吗?还可以尝试在事务中包装-顺便说一句,90000不算大。就像总是:查询计划。您的插入在“选择零件”中执行了一些需要花费时间的操作,请找出原因。缺少索引。您是否尝试将此部件移动到SP并执行,它将执行得更快。@user3501749。可能多次使用可能会节省1/1000秒的解析文本。在10分钟的运行时间内。令人不快的一句话是最快的。特别是对于不是单行插入的大/慢语句。不,他不是。这是一种新的语法,是的,它看起来更好,但他不必这么做-从查询优化的角度来看,旧语法的工作原理是相同的。@TomTom Ok不知道,谢谢。但第二点仍然有效
FROM bilan e1 JOIN data e2 ON e1.siren = e2.siren