我正在使用MySQL数据库处理C#Windows表单。
我必须搜索表格中的大数据,这需要花费大约5-10分钟来提供答案。(我在MySql查询工具上运行查询需要相同的时间)< / p>
是否有任何搜索技术可以让我的搜索速度更快?目前,我使用带有select
子句的简单where
语句。 Idictionary
,hashtable
等可以用它来实现吗?
答案 0 :(得分:2)
您是否尝试在where子句中为要搜索的列添加索引?
您是在搜索100k记录,还是您的设置返回100k记录。在现代计算中,100k记录是一桶水。正确索引列可以极大地加速此过程。
如果您的集合返回100k记录,则会进一步过滤,即使它只返回前10条记录(确保订购结果)。将所有这些放在您的SQL查询中,让MySql为您完成所有繁重的任务。一般来说,用户不需要一次看到100k记录。
要进一步回答您的问题,应将结果填充到CLR对象和添加到某种集合中的对象。见System.Collections.Generic.List
。一旦他们进入这样的对象,处理来自C#的数据应该是微不足道的。
希望这有帮助。
答案 1 :(得分:-2)
如果你有能力把它放在记忆中,是的。根据您的搜索选项,您可以应用算法来缓存最近搜索过的项目。
如果缓存不是一个选项,您应该考虑正确索引数据库表。
校正: 无论缓存是否是一种选择,您都应首先使用正确的索引和统计信息进行优化。