MySQL查询永远运行,怎么了?
本文关键字:怎么了 运行 查询 永远 MySQL | 更新日期: 2023-09-27 18:18:18
我用这个来做一个查询,在c#.net mysql连接中I高达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 + "')";
}
检查事项:
- 记录c#代码中执行的查询。你可能"认为"相同的查询正在从MySQL shell执行,但总是有可能不是。
- 查看查询的查询计划,查看正在使用哪些索引等。您可能需要在Timestamp上创建索引,这可能会极大地提高性能。