微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

API 调用需要很长时间数据集 250.000 条记录

如何解决API 调用需要很长时间数据集 250.000 条记录

我让用户调用 api 来获取前端的日期,但我的数据库表包含 250.000 行。

我在我的 .NET Core 应用程序中使用了这个查询

IQueryable<Message> query = context.Message;
        query = query.Where((x) => x.Unit == unitId);
        return await query.ToListAsync();

我使用 HTTPGet 请求来获取答案:

function getAllMessagesFromunit (){
var xhttp = new XMLHttpRequest();
xhttp.open("GET","https://localhost:44305/api/Units",true)
xhttp.send();

xhttp.onreadystatechange = function (){
    var tbody = document.getElementById("apiTable").querySelector("tbody");
    tbody.innerHTML = "";
    if(this.readyState == 4 & this.status == 200){
        JSON.parse(this.responseText).forEach(function(data,index){
           tbody.innerHTML += "<tr><td>" + data.id + "</td>";
        });
    }
}

}

这会返回 808 条记录,但加载需要 4.7 秒。我该如何改进这种性能

我使用 .NET CORE 和实体框架作为后端和前端 javascript!

解决方法

如果这始终是一个问题,那么您可能有一个非常大的表或非常宽的行。

对于第一个问题,您可以通过创建索引来修复性能:

create index idx_table_unit on table(unit);

第二种,你可以只选择你需要的列。

当然,可能还有其他问题,例如数据库和应用程序之间的带宽问题,或服务器上的争用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。