插入MYSQl太慢了

时间:2016-04-24 18:21:20

标签: php mysql ajax search insert

搜索参数中的用户键,然后我们向数据提供者发出请求并将用户重定向到加载页面。来自数据提供者的响应命中回调URL,在这种情况下,我们解析结果并将大约200行存储到db中。同时,加载页面使用ajax每秒查询数据库,当结果全部存在时,我们将结果显示给用户。

问题是插入mysql db太慢了。我们知道从数据提供程序返回的响应会在几秒钟内返回,但是脚本的处理和向数据库中插入行的速度非常慢。我们使用multirow insert。

有任何改进建议吗?仅供参考,代码非常长......这就是为什么不立即显示。

2 个答案:

答案 0 :(得分:0)

影响插入的因素有很多:

1)硬件速度慢,服务器速度不佳。 Sol:联系您的服务器管理员

2)使用InnoDB以外的东西

3)使用代理键,而不是您的主键,它是数字和顺序以及您的自然主键。

OR

4)试试这个https://stackoverflow.com/a/2223062/3391466

答案 1 :(得分:0)

建议:为什么不让php页面将指令存储在php队列中,而不是在一个页面上运行代码并让用户等待整个过程?然后,指令将由单独的PHP脚本(例如Cron作业)执行,用户不必等待整个过程发生。

但是,在这种情况下,最好让用户知道所做的更改可能需要一些时间来更新。

Cron工作非常容易实施。在CPanel中,有一个Cron Jobs选项,您可以在其中指定要运行的脚本以及间隔。您可以让脚本知道每1分钟运行一次(或多或少,取决于需求量)。从那里,您的脚本将检查队列并继续运行,直到队列再次为空。

如果有帮助,请告诉我!