繁体   English   中英

使用php / mysql实时搜索防止多个同时查询

[英]preventing multiple simultaneous queries with php/mysql live search

我有一个工作实时搜索系统,总体上工作得很好。 但是,如果用户输入的速度比返回结果的速度快,那么它经常遇到服务器上的许多版本的搜索查询同时运行的问题。

我正在中止一个新的ajax请求,但这当然不会影响服务器上已经处理的查询,并且你最终会遇到严重的瓶颈和漫长的等待以获得最终结果。 我正在使用带有MyISAM表的MySQL,并且在转换为InnoDB时似乎没有任何优势,因为结果集将是理智的行。

我尝试使用会话变量使PHP等待,如果此会话已经有一个正在进行的查询但似乎停止它完全工作。

如果我使ajax请求同步,问题就解决了,但是这样会在这里击败对象。

我想知道是否有人有任何关于如何使这项工作正常的建议。

最好的问候约翰

在做更复杂的事情之前,您是否考虑过在用户停止输入至少一定时间间隔(比如1秒)之前不发送请求? 这应该会大大减少您的请求数量而不需要您付出太多努力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM