我有一个大表,其中包含大约1亿条MySQL记录。 我想从中读取所有记录并在我的C#/ .Net程序中处理它们, 所以我写了一些像这样的代码:
string sql = "SELECT * FROM the_table";
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
//...
}
但是在运行3分钟后,出现超时问题。
如果我将SQL语句更改为使用“limit”:
string sql = "SELECT * FROM the_table limit 60000000" //60 million
然后它运作正常。 (循环while (rdr.Read())
花了大约3.8分钟)
因为桌子太大而造成超时吗?
这里发生了什么,如何解决问题?
答案 0 :(得分:1)
答案 1 :(得分:0)
我已将命令超时设置为更高的值,并修复了问题。
MySqlCommand mySqlCommand = new MySqlCommand(sql_cmd);
mySqlCommand.Connection = _connection;
mySqlCommand.CommandTimeout = 3600;
希望这有帮助