当前位置: 首页 > 知识库问答 >
问题:

MySQL和PHP中的批处理?

祁曦哲
2023-03-14

我正在制作一个应用程序,其中每周一次必须根据系统的所有用户执行多个操作(计算)。最初估计大约有300个用户。

我的问题是,有没有一种方法可以执行这种类型的操作?比如批量处理?现在,我只使用一个用户测试脚本,在本地主机上,我使用foreach循环来循环用户并生成​​所有查询、计算和插入结果。。

我怀疑是否有更多的用户饱和了脚本或托管或类似的东西。。我如何处理这种情况?

欢呼;)

共有1个答案

华凡
2023-03-14

这种情况通常是通过Cron(或Windows上类似的东西)实现的。因此,如果您的脚本仅在非高峰时间由cron运行(例如,如果您的所有用户都在一个时区,则周日凌晨3点),您几乎可以确定它不会在同一时间运行两次,也不会影响您的用户。

由于MySQL支持事务和存储过程和函数,我建议您使用数据库中的存储过程而不是PHP脚本来循环数据。然后,您可以将逻辑存储在db函数中,并在事务中执行类似插入-选择的操作。它应该比普通环路更快、更安全、更方便。

 类似资料:
  • 问题内容: 我的问题与春季批次和交易有关。 假设我为我的步骤之一选择了 50 的 提交间隔 。 还要假设我总共有1000条记录,其中一条记录将导致itemWriter失败,从而导致整个块的回滚(在我的示例中为50条记录)。 确保作业完成(并忽略有问题的块)后将49个有效记录写入数据库的状态有哪些? 问题答案: 经过研究,我得出以下结论: 如果项目编写者未能提交一个块(此处为50个项目)从而导致回滚

  • 我想分散加工大批量。这个想法是使用Spring Batch在云中激发一堆AMQP消费者,然后加载廉价的任务(如项目ID)并将它们提交给AMQP交换。结果的书写将由消费者自己完成。 null

  • 我有一个Spring批处理作业,它通过SFTP从远程Linux服务器检索文件。远程服务器上的目录是一个包含七天文件(约400个文件)的存档。文件的大小相对较小。 Spring批处理知道哪些文件已经被处理。 当我启动应用程序时。第一次,Spring Batch tasklet检索文件时,Spring Batch会为它已经处理的每个文件生成一个异常: > 在Transformer类中,是否应该检查文件

  • 主要内容:预处理语句及绑定参数,MySQLi 预处理语句,实例 (MySQLi 使用预处理语句),PDO 中的预处理语句,实例 (PDO 使用预处理语句)预处理语句对于防止 MySQL 注入是非常有用的。 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高。 预处理语句的工作原理如下: 预处理:创建 SQL 语句模板并发送到数据库。预留的值使用参数 "?" 标记 。例如: 数据库解析,编译,对SQL语句模板执行查询优化,并存储结果不输出。 执行:最后,将应用绑定的

  • 在前面的章节,我们使用mysql交互模式输入语句和查看结果。我们也可以以批处理的模式来运行mysql。要达到这种目的,需要把我们想运行的语句放在一个文件里,然后告诉mysql从文件读取它的输入。 shell> mysql < batch-file 如果你是在Windows下运行mysql,文件里的一些特定字符会引起一些问题,你要这样做: C:\> mysql -e "source batch-f

  • 我有以下工作要处理在一定的时间间隔或特别的基础上。 作业中的步骤如下: 我也想要用户界面,在那里我可以触发一个特别的基础上的工作,而且我应该能够提供参数从用户界面。 我想用Spring batch来完成这个任务,但它更多的是用于读->处理->写之类的工作。这里,在第一步中,我正在生成由第二步读取的数据。我不确定我是否还可以使用Spring batch来实现这个,或者有更好的方法来实现这个。