【发布时间】:2018-01-25 04:44:48
【问题描述】:
我正在开发一个基于 PHP/Laravel 的应用程序。有一种情况是我必须在 MySQL 表中插入大量数据,用户提交后需要大约 1-2 分钟才能完成插入查询。我想在上一个仍在进行时绕过另一个插入查询。
所以我创建了一个log 表,其中0 的值在另一个表上开始批量插入之前插入is_completed 字段,当批量插入循环完成时,我触发了另一个更新@的查询log 表的 is_completed 字段上的 987654324@。
这样我可以检查is_complete 标志是否设置为1 以允许用户的下一个请求,否则只需绕过查询。我已将事务用于批量插入,如果发生任何异常,我会在处理异常时清除日志。
现在,如果在批量插入正在进行时服务器重新启动,则会出现问题,在这种情况下,日志表上的 is_complete 标志设置为 0。如果这样,用户将无法请求插入数据,直到第二天。
在 MYSQL 上是否提供了任何类型的自动化,以便在数据库服务器刚启动时我们可以运行查询?如果是这样,我将触发查询以清除日志表。关于我的情况,谁能告诉我该怎么做或建议我更好的解决方案?
【问题讨论】:
标签: php mysql database laravel