有人了解搜素输入框的下拉匹配数据技术么,现在由于数据多,运算慢,怎么办?

kenny辅导费 2013-09-10 05:33:16
目前用的技术要请求服务器数据的,每打一次要运算一次,输入很不方便,加了延迟运算,但不是长久之道,有没有更好的办法或技术?
...全文
437 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
宝龙哥 2013-10-10
  • 打赏
  • 举报
回复
总结起来就是,只在点出下拉菜单时执行一次查询更新下拉列表中的数据,因为所有不重复的数据都被载入列表,所以由编辑框自己来匹配就完全可以了 比如,如果编辑框是ComboBox的话: void __fastcall TForm1::ComboBox1DropDown(TObject *Sender) { ((TComboBox *)Sender)->Items->Clear(); // 清空ComboBox控件 // 写入数据的语句 }
宝龙哥 2013-10-10
  • 打赏
  • 举报
回复
执行一次查询的话数据库应该会自动优化查询的吧 下拉匹配正常的情况是在第一次点击下拉时检查列表是否为空,不为空的话执行查询载入数据。 在用户点出下拉列表,然后输入数据,这么短时间内的数据库更新可以忽略的吧 因为是在点出下拉列表时执行的查询,因此不会出现输入时执行查询的情况,速度也应该是可以接受的吧
书生 2013-10-10
  • 打赏
  • 举报
回复
每次都是直接从服务器表中搜索速度肯定是会有问题的,如果大量数据想做搜索提示。最好有服务段程序,服务端必须做关键数据的缓存,Memory cache,由服务端根据缓存中的搜索结果返回。 另外楼上说的,本地的字节处理策略也要考虑。
eanrysoft 2013-10-01
  • 打赏
  • 举报
回复
百度他们那些跟你的情况不大相同, 人家那个只是显示最近相关的热门的内容,显示出来的不外也就是最匹配的10来个话题. 他们要求的不是准确的数据,只是相关的话题. 而你要做的是要反映数据库中与你输入的内容相匹配的所有集合.当数据量大的时候肯定是慢的. 觉得你在OnChange中对输入内容判断,如果是前几个字符的才从服务器选取数据下到当地,也不要第一第二个字符就动作,等到第三个字或者之后才动作.之后的就在当地的数据集中Filter. 试试看有没有效果?
nextseconds 2013-09-24
  • 打赏
  • 举报
回复
嗯嗯,说实在的,的确是,当数据量很大的时候,网络就显得特别的重要。
引用 4 楼 PPower 的回复:
服务端做个接口,缓存常用数据。用户多操作频繁的话,做少许本地缓存可以降低服务器压力,毕竟一般企业不可能象google baidu那样烧钱做服务器的。 只用数据库,没做服务端的话,速度快不到哪去。数据库做好索引,数据量太大的话,把常用数据另做一个表。 网速,如果通过Internet 连接的话,租用主机做服务器直接接入Internet才好。局域网的话,超过50用户最好能上千兆网。
勉励前行 2013-09-11
  • 打赏
  • 举报
回复
服务端做个接口,缓存常用数据。用户多操作频繁的话,做少许本地缓存可以降低服务器压力,毕竟一般企业不可能象google baidu那样烧钱做服务器的。 只用数据库,没做服务端的话,速度快不到哪去。数据库做好索引,数据量太大的话,把常用数据另做一个表。 网速,如果通过Internet 连接的话,租用主机做服务器直接接入Internet才好。局域网的话,超过50用户最好能上千兆网。
kenny辅导费 2013-09-10
  • 打赏
  • 举报
回复
谢谢3L!!!
sololie 2013-09-10
  • 打赏
  • 举报
回复
LS。。。这不是办法吧,baidu\google人家这些海量数据搜索都是飞快,这个跟客户端这边没太多关系,得从数据库方面着手,给常搜索的关键字做索引什么的, 俺对数据库不熟,最好去sql版问。
缘中人 2013-09-10
  • 打赏
  • 举报
回复
下载到本地,在客户端搜索

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧