如何解决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 举报,一经查实,本站将立刻删除。