MySQL查询需要永远运行,有什么不对?

时间:2013-06-13 11:56:04

标签: c# asp.net mysql sql database

我正在使用它来进行查询,其中我在c#.net mysql连接中达到20。 这个查询需要永远执行,当我在MySQL shell中运行它需要3分钟。 所有其他查询运行正常。

string sqlQuery = "(SELECT TimeStamp, AVG(FwdHr), W FROM Meter_Data " + 
                    "WHERE TimeStamp Between " + 
                    (timeSt[0] - window).ToString() + 
                    " AND " + (timeSt[0] + window).ToString() + 
                    " AND DeviceID = '"+deviceId+"')";

for (int i = 1; i < timeSt.Count; i++)
{
    sqlQuery = sqlQuery+ " UNION (SELECT TimeStamp, AVG(FwdHr), W 
               FROM Meter_Data WHERE TimeStamp Between " + 
               (timeSt[i] - window).ToString() + " AND " +
               (timeSt[i] + window).ToString() + 
               " AND DeviceID = '" + deviceId + "')";  
}

1 个答案:

答案 0 :(得分:0)

要检查的事项:

  1. 记录正在执行的C#代码查询。你可以“认为”从MySQL shell执行相同的查询,但总有可能不是。
  2. 查看查询的查询计划,并查看正在使用的索引等。您可能需要在Timestamp上创建索引,这可能会极大地提高性能。