PHP字符串与类似Mysql的字符串比较%

PHP字符串与类似Mysql的字符串比较%,php,mysql,autocomplete,jquery-autocomplete,Php,Mysql,Autocomplete,Jquery Autocomplete,我想知道,假设一个记录集大约有500000行,并且只有一个列名,那么使用Jquery的自动完成会更快些 将行存储在memcache中,并在PHP中取出内存,然后进行字符串比较 或 使用mysql并对搜索词执行类似“%”的操作。像这样的问题是无法猜测的。这么说来,我猜选项2会更快 在我尝试这两种方法之前,我不会做出决定,即使这样,我也会尝试想出第三种选择。这个“PHP解决方案”听起来有点像是重新实现SQL查询过滤器——只是为了公平起见,您需要适当地使用strpos,而不是简单的等式 SQL/LIK

我想知道,假设一个记录集大约有500000行,并且只有一个列名,那么使用Jquery的自动完成会更快些

将行存储在memcache中,并在PHP中取出内存,然后进行字符串比较


使用mysql并对搜索词执行类似“%”的操作。

像这样的问题是无法猜测的。这么说来,我猜选项2会更快

在我尝试这两种方法之前,我不会做出决定,即使这样,我也会尝试想出第三种选择。

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

SQL/LIKE查询或真正的一般查询的最大特点是-这通常意味着限制为
foo%
过滤器,使用“全文”(MySQL本身只能使用前缀通配符),或者只需要对完整表扫描进行处理

我希望SQL整体速度更快——尽管唯一确定的方法是在实际使用条件下创建性能基准/概要文件——因为即使进行完整的表扫描,也必须传输更少的数据(PHP方法听起来不像是使用巧妙的解决方案)

另一方面,memcached对于缓存此类SQL/LIKE查询的结果非常有用:假设查询限制为100个结果,这些结果根据过滤器值存储在memcached中


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

@PeeHaa但更简单的是,发布到SO并让其他人进行测试:pHow你会从memcached中提取一个“像%foo%”的值吗?Memcached很好。。作为缓存,而不是查询源。@DigitalChris希望有人已经这样做了,可以发布results@user2864740我想在从memcache加载结果后使用PHP字符串比较函数