PHP字符串比较与Mysql一样%

时间:2014-01-30 22:13:41

标签: php mysql autocomplete jquery-autocomplete

我想知道使用Jquery的自动完成功能会更快,假设记录集大约有500,000行,只有一个列名。

将行存储在内存缓存中并在PHP中拉出内存并进行字符串比较。

或者

使用mysql并对搜索词执行类似'%%'。

2 个答案:

答案 0 :(得分:1)

“PHP解决方案”听起来有点像重新实现SQL查询过滤器 - 只是为了公平起见,您需要在适当时使用strpos,而不是简单的相等。

SQL / LIKE查询或一般查询的最大问题是making sure that they are able to utilize indexes - 这通常意味着使用“全文”限制foo%过滤器building a de-normalized reverse index(MySQL本身)只能做前缀通配符),或者只是对全表扫描感到满意。

我希望期望 SQL整体更快 - 尽管唯一可以确定的方法是在实际使用条件下创建性能基准/配置文件 - 因为,甚至使用全表扫描,必须传输更少的数据(并且PHP方法听起来不像使用巧妙的解决方案)。

另一方面,memcached可用于缓存此类SQL / LIKE查询的结果:例如,查询限制为100个结果,根据过滤器值存储在memcached中。< / p>

如果/当相同的过滤器来自客户端时,memcached会根据确切的密钥找到一个条目,而不需要转到SQL找到的高速缓存条目已经被基础SQL / LIKE查询过滤掉了,因此可以返回直。 (然后它就变成了一个游戏,确保缓存只处理可能在不久的将来再次查询的信息。)

答案 1 :(得分:-1)

这些问题无法猜测。这样说,我猜选项2会更快。

在我尝试过这两项工作之前,我不会做出决定,即便如此,我也会尝试提出第三种选择。