gpt4 book ai didi

php - 如何在PHP中实现后台/异步后写缓存?

转载 作者:可可西里 更新时间:2023-11-01 07:02:27 25 4
gpt4 key购买 nike

我有一个特定的 PHP 页面,由于各种原因,它需要将大约 200 个字段保存到数据库中。这些是 200 个单独的插入和/或更新语句。现在显而易见的事情是减少这个数字,但是,就像我说的,由于我不想费心去讨论的原因,我不能这样做。

我没想到会出现这个问题。选择在 MySQL 中似乎性能合理,但插入/更新不是(执行此更新大约需要 15-20 秒,这自然是 Not Acceptable )。我编写的 Java/Oracle 系统可以愉快地同时执行数千次插入/更新(在这两种情况下都运行本地数据库;MySQL 5 与 OracleXE)。

现在,在 Java 或 .Net 中,我可以很容易地执行以下操作之一:

  1. 将数据写入内存后写缓存(即它会知道如何持久化到数据库并且可以异步执行);
  2. 将数据写入内存缓存并使用 PaaS(持久性作为服务)模型,即缓存将保留字段;或
  3. 只需启动一个后台进程可以保留数据。

最小的解决方案是拥有一个我可以简单更新的缓存,它会在自己的时间单独去更新数据库(即它会在更新内存缓存后立即返回)。这可以是全局缓存或 session 缓存(尽管全局共享缓存在其他方面确实有吸引力)。

对于此类问题还有其他解决方案吗?

最佳答案

mysql_query('INSERT INTO tableName VALUES(...),(...),(...),(...)')

以上给出的查询语句更好。但是我们有另一种解决方案来提高插入语句的性能。
按照以下步骤..
1. 您只需创建一个 csv(逗号分隔文件)或简单的 txt 文件,然后使用文件写入机制(如 Java 中的 FileOutputStream 类)写入要插入的所有数据。
2.使用这个命令

LOAD DATA INFILE 'data.txt' INTO TABLE table2
FIELDS TERMINATED BY '\t';

3 如果您对这个命令不清楚,请按照 link 进行操作

关于php - 如何在PHP中实现后台/异步后写缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/327035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com