首页 > 解决方案 > 如何在 ASP.NET 核心中更快地将 mySQL 查询数据发送到客户端?

问题描述

在 ASP.NET 应用程序中,我从 mySQL 数据库中检索数据并将其发送到前端以在图形中使用。

在一种情况下,数据包含大约 2,700,000 行,这需要 15-20 秒(我使用 Stopwatch 类来测量命令之间的时间)。我正在尝试减少用户获取此数据所需的总时间。

这段时间至少有 10 秒用于.Read()ing,即使在两次读取之间什么也没做,就像这样

MySqlDataReader reader = command.ExecuteReader();
while (reader.Read()) {}

这就是我现在正在做的事情:

List<object> results = new List<object>();

while (reader.Read())
    {
        results.Add(new { type = reader.GetValue(0), time = reader.GetValue(1),  value = reader.GetValue(2) });
    } // 10-15 seconds for 2.7 million rows

string jsonstr = JsonConvert.SerializeObject(results); // 4 seconds

return jsonstr;

我也尝试将查询结果转换为 csv 文件,但两种方法都使用 MySqlDataReader 逐行读取 .Read() 。有没有更快的方法来处理数据点?

标签: c#mysqlasp.net-core

解决方案


推荐阅读