关于用C#在MySQL中大量插入数据的问题速度超慢不知道为什么.......
用.net连接MySql后,两种驱动均使用(odbc和for .net)可是大量插入数据时速度非常之慢,和同等条件下的Access来比慢了将近5倍,这是为什么,起初我以为是odbc接口的问题,可是我把 Access的接口由oledb改为odbc测试一下仍然比MySql要快5倍!!!!
其实我所要插入的数据量并不大,几千条而已,可是为什么速度竟然到达分钟级别?那位大哥可以帮忙解释????急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!
插入方法我也用了两种比较1.循环插入2;update插入,可是并没有什么改观什么原因???
以下是我其中一种别插入方法的代码:
private void DataBaseInsert()
{
System.Data.Odbc.OdbcConnection cn =new System.Data.Odbc.OdbcConnection(this.strCnOdbc);
string strSql ="insert into test.sima values (?,?,?,?)";
System.Data.Odbc.OdbcCommand cmd = new System.Data.Odbc.OdbcCommand(strSql,cn);
System.Data.Odbc.OdbcParameterCollection pc = cmd.Parameters;
pc.Add("id",System.Data.Odbc.OdbcType.Int,4);
pc.Add("ox",System.Data.Odbc.OdbcType.Double,8);
pc.Add("oy",System.Data.Odbc.OdbcType.Double,8);
pc.Add("name",System.Data.Odbc.OdbcType.Char,8);
int count = this.al.Count;
this.progressBar1.Maximum=count;
cn.Open();
for(int i=0;i<count;i++)
{
string name ="";
double ox=0,oy=0;
Form1.splitString(ref name,ref ox,ref oy,this.al[i].ToString());
cmd.Parameters["id"].Value=i;
cmd.Parameters["ox"].Value=ox;
cmd.Parameters["oy"].Value=oy;
cmd.Parameters["name"].Value="name";
this.progressBar1.Value=i+1;
cmd.ExecuteNonQuery();
}
}
另外我还用postgresql尝试了一下速度也超慢,是不是.net控制数据库除了微软自己的(Access、SQL)
以外都特别慢呀????哪位同仁能上来解释一下多谢了