我有一个关于性能的问题。这是我的场景。
我有一个 MYSQL 数据库和一个应用程序,它不时根据查询的条件将记录从一个表移动到另一个表。这样做的方法是:
foreach(object obj in list)
{
string id = obj.ToString().Split(',')[0].Trim();
string query = " insert into old_records select * from testes where id='" +
id + "';" + " delete from testes where id='" + id +"'";
DB _db = new DB();
_db.DBConnect(query);
这是我连接到数据库的方式:
DataTable _dt = new DataTable();
MySqlConnection _conn = new MySqlConnection(connectionString);
MySqlCommand _cmd = new MySqlCommand
{
Connection = _conn,
CommandText = query
};
MySqlDataAdapter _da = new MySqlDataAdapter(_cmd);
MySqlCommandBuilder _cb = new MySqlCommandBuilder(_da);
_dt.Clear();
try
{
_conn.Open();
_cmd.ExecuteNonQuery();
_da.Fill(_dt);
}
catch (MySqlException ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (_conn != null) _conn.Close();
}
return _dt;
所以我的问题是,我的表中有 4000 行,将所有记录从一个表移动到另一个表需要很长时间,特别是通过网络。有没有办法让它更快?
我一直在做一些阅读,并且有几个选项可以处理来自数据库的数据,例如数据适配器、读取器、集合和表。对于这种情况,哪个更快?我应该使用不同的方法吗?