【问题标题】:How to store/access data in mariadb which is updated every 15 seconds如何在每 15 秒更新一次的 mariadb 中存储/访问数据
【发布时间】:2021-06-30 16:31:49
【问题描述】:

我想下载一些 json 数据(每 15 秒更新一次)并使用 PHP 脚本将其存储在我的 maria-db 中。 不幸的是,数据库更新查询需要 1 秒,有时长达 60 秒,具体取决于 json-data-size。 因此,有时我会用超过 15 秒的写入查询将自己锁定,一旦我读取/处理数据,我也会阻止所有写入查询。

显然,我确实采用了错误的方法,而且比我想象的要复杂。 有没有人知道如何专业地完成这样的工作,具有持续更新的可能性,并且在我读取数据时不会阻止更新本身?

感谢任何提示!

PS:目前我正在使用 InnoDB-Table,为了加快插入速度,我将自动提交设置为 0 并更新事务中的所有内容。 我使用 LOCK TABLES for WRITE 获得了最快的结果,但这当然也会阻止读取访问。

【问题讨论】:

    标签: php json curl pdo mariadb


    【解决方案1】:

    除非您正在执行的更新很复杂,否则只需将一些数据更新到 MariaDB 不会花费那么长时间。您可以考虑插入原始 JSON(甚至可能在文档数据库中),并让一个由 cronjob 触发的后台进程从存储的原始 JSON 中读取以更新 MariaDB。

    此外,您可以考虑插入数据而不是更新。这将防止发生死锁。这样做可能需要您更改数据模型,因此它可能不是您正在寻找的解决方案。

    除上述之外,我建议您查看您设置的流程并将其拆分为多个可以单独运行的步骤。这样做可以让您对每个步骤的时间和触发器进行细粒度控制,如果设置正确,这将防止死锁。

    【讨论】:

      猜你喜欢
      • 2019-01-05
      • 2011-03-17
      • 2021-07-31
      • 2022-01-06
      • 2016-04-23
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      相关资源
      最近更新 更多