我正在为我的数据库开发高度专业化的搜索引擎。当用户提交搜索请求时,引擎将搜索项分割成数组并循环。在循环内部,将根据几种可能的场景来检查每个搜索项,以确定它可能的含义。当搜索条件与场景匹配时,会将WHERE条件添加到SQL查询中。有些术语可以有多种含义,在这种情况下,引擎会建立一系列建议来帮助用户缩小结果。在同一个循环中执行两个不同的任务不好吗?
另外:如果任何人有兴趣知道,ambigous术语是通过加上关键字前缀。例如,1954年可能是一年或序列号。引擎会向用户建议这两种情况,并将搜索字词修改为年份:1954年或序列号:1954年。
在同一个循环中构建SQL查询和精化建议对我而言感觉不知怎么地错了,但是将它们分开会增加更多的开销,因为我将不得不循环遍历同一个数组两次并测试所有相同的场景两次。什么是更好的行动方式?
只是因为它仍然为O(n)不会使它更好。 O(n)= O(100000n)。当你可以做一次的时候,为什么要跑两次? 很明显,将代码分离到方法中是一个好主意。 – 2010-01-22 16:07:59
这就是我所建议的。我只是表示,理论上这不是一个表现_issue_,但它肯定不会提供更好的性能(更糟的是) – Bozho 2010-01-22 16:09:53