Php 如何在mariadb中存储/访问每15秒更新一次的数据

Php 如何在mariadb中存储/访问每15秒更新一次的数据,php,json,curl,pdo,mariadb,Php,Json,Curl,Pdo,Mariadb,我想下载一些json数据(每15秒更新一次),并用PHP脚本将其存储在我的maria db中。 不幸的是,数据库更新查询需要1秒到有时长达60秒,这取决于json数据的大小。 因此,有时我会死死地将自己锁定在写查询上,这些查询需要15秒以上的时间,一旦我读取/处理数据,我也会阻止所有的写查询 显然,我的方法是错误的,而且比我想象的要复杂得多。 有没有人知道如何专业地完成这项工作,在我读取数据时,能够持续更新,并且不会阻止更新本身 谢谢你的提示 PS:目前我正在使用InnoDB表,为了加快插入速度

我想下载一些json数据(每15秒更新一次),并用PHP脚本将其存储在我的maria db中。 不幸的是,数据库更新查询需要1秒到有时长达60秒,这取决于json数据的大小。 因此,有时我会死死地将自己锁定在写查询上,这些查询需要15秒以上的时间,一旦我读取/处理数据,我也会阻止所有的写查询

显然,我的方法是错误的,而且比我想象的要复杂得多。 有没有人知道如何专业地完成这项工作,在我读取数据时,能够持续更新,并且不会阻止更新本身

谢谢你的提示

PS:目前我正在使用InnoDB表,为了加快插入速度,我将自动提交设置为0,并更新事务中的所有内容。
我用锁表进行写操作的结果最快,但这当然也会阻止读访问。

简单地将一些数据更新到MariaDB中不会花费那么长时间,除非您正在进行的更新很复杂。您可以考虑的是插入原始JSON(甚至可能在文档数据库中),并有一个CRONJOBE触发的后台进程从存储的原始JSON中读取MariaDB。 <>另外,可以考虑插入数据而不是更新。这将防止死锁的发生。这样做可能需要您更改数据模型,因此它可能不是您正在寻找的解决方案

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