【问题标题】:Possibilities that may cause delay to MySQL insert queries可能导致 MySQL 插入查询延迟的可能性
【发布时间】:2017-02-19 03:04:29
【问题描述】:

我拥有的系统由 3 个部分组成:CMS / 平板电脑 (APP) / MySQL 数据库。 CMS 有一个 API,用于处理来自 APP 的数据并将其保存到数据库中,以便在 CMS 上显示。

问题:APP向API(循环)发送大约100个入口请求(json)。然后 API 读取每个请求,并针对每个请求向数据库发送超过 10 个插入查询。

不幸的是,这些插入查询中只有一半通过,其余的则失败。但是当我发送 1 或 2 个请求时,插入需要几秒钟才能完成,但最终可以正常工作。

请您帮我指出可能导致 MySQL 插入查询延迟的可能性吗?

【问题讨论】:

  • 您说您的应用向 API 发送了一百个请求。您没有说 API 是作为 HTTP 端点实现的,还是什么。您也没有说明请求是分批发送还是一次快速发送。您也没有提及您的应用如何以及是否检测 API 请求中的错误和超时。恕我直言,如果不知道这些事情,就很难理解你的问题。请edit您的问题提供更多详细信息。
  • 感谢您回复@OllieJones。 api 是一个 HTTP 端点。发送到 api 的请求很快。该应用程序不会检测 api 请求中的错误或超时。 api 和 cms 用 php 编码。

标签: php mysql json api


【解决方案1】:

在我看来,您的应用正在向您的 Web 端点发送大量请求,而无需等待它们完成或检查它们的返回状态。

在这种情况下,运行您的 php 程序的 Web 服务器会将请求排入队列,直到其队列填满,然后拒绝它们。你永远不会知道排队或拒绝,因为你不等待。

如果插入一个请求需要 3 秒,那么 100 个请求应该需要 300 秒(五分钟)。您的应用程序应该需要很长时间才能完成所有请求。如果不需要那么长时间,它可能没有等待状态。

很明显,对于一个典型的移动应用来说,五分钟的等待时间太长了。但这是一个不同的问题。在解决了丢失请求的问题后,您应该解决它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多