gpt4 book ai didi

c# - 如何避免在分页期间调用数据库

转载 作者:行者123 更新时间:2023-11-30 20:48:45 25 4
gpt4 key购买 nike

我从数据库中获取了大约 20 万行。每次我点击分页时,它都会从数据库中获取记录。如何避免这种情况?缓存??

public ActionResult Demo(int? page, string sortOrder, string recordSize)
{

int pageSize = Convert.ToInt32(recordSize = string.IsNullOrEmpty(recordSize) ? "20" : recordSize);
int pageNumber = (page ?? 1);

var customers = DBHelper.GetCustomers();
return View(customers.ToPagedList(pageNumber, pageSize));
}

最佳答案

你永远不应该拉回所有行来缓存或使用。这简直就是太多的数据,你将在这样做时遭受巨大的性能损失。您应该尝试只拉回您实际想要使用的数据。

如果您正在使用 LinqToSql 或 EntityFrameWork 或类似的数据访问,您可以使用 linq 来检索您想要的页面。这将是最有效的解决方案,因为您不会撤回所有 20 万行。

var customers = Customers.Skip(pageIndex * pageSize).Take(pageSize);

Caching可以第二次提高检索速度,但是您的初始速度问题将是每次请求都从数据库中拉回所有 200k 行。是的,您可以将它们全部拉回、缓存它们并使用它们,但这不是理想的方法。理想的缓存是缓存每个页面都依赖于前一个页面,这样您就可以正确地使缓存无效。

关于c# - 如何避免在分页期间调用数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24265158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com