gpt4 book ai didi

asp.net - 大数据集的自动完成优化

转载 作者:行者123 更新时间:2023-12-02 18:48:44 24 4
gpt4 key购买 nike

我正在开发一个大型项目,我必须为用户提供将数据输入表单的有效方法。

该表单的三个字段需要来自公共(public)数据源(SQL 表)子集的值。我使用 JQuery 和 JQuery UI 构建了一个自动完成功能,它将发布到通用 HttpHandler。

处理程序在内部使用 Linq-to-sql 从该特定表中获取所需的数据。该表大约有 10 个不同的列,linq 表达式使用 SqlMethods.Like() 来匹配这 10 个字段中每个字段的单个搜索词。

问题是该表包含大约 20K 行。自动完成工作完美无缺,接受大量数据会带来延迟,在大约 6 秒左右(在我的本地计算机上调试时)才会显示。

JqueryUI 自动完成具有 0 延迟,对 3 键进行查询,并且帖子的结果以 Facebook 风格的多行 optional 进行。 (我几乎不得不重写自动完成插件......)。

所以问题是数据与速度。关于如何加快速度有什么想法吗?我唯一的两个想法是缓存数据(如何/在哪里?);或者使用直接的 sql 数据读取器进行数据访问?

任何想法将不胜感激!谢谢,

<bleepzter/>

最佳答案

我会考虑使用 .Take(10) linq 方法仅返回前 X 行。这应该转化为 sensbile sql 调用,这将大大减少数据库的负载。随着用户输入,他们会发现越来越少的匹配项,因此他们只会看到他们需要的数据。

我通常认为 10 个项目足以让用户了解正在发生的事情,并且仍然可以快速获取他们需要的数据(请参阅 amazon.com 搜索栏以获取示例)。

显然,如果您能够以有意义的方式对数据进行排序,那么这 10 个结果将更有可能快速为用户提供他们想要的内容。

关于asp.net - 大数据集的自动完成优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4628064/

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