gpt4 book ai didi

php - LOAD DATA INFILE + 进度跟踪

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:48 26 4
gpt4 key购买 nike

我制作了一个 PHP 控制台脚本,用于下载大型 CSV 文件(> 250 万行)并将其插入数据库。我在这里使用 LOAD DATA INFILE 查询,它运行良好,大约需要 20 秒即可完成。

我想跟踪此查询的进度。我在这里阅读了几种方法,但我不知道如何运行 LOAD DATA INFILE 查询,然后运行进度跟踪循环。脚本一直等到 LOAD DATA INFILE 完成。

我的数据库是MySQL,引擎是InnoDB。我正在使用 Laravel 框架。

最佳答案

您可以使用 pt-fifo-split 来“拆分”转储文件并在每个 block 之后打印进度消息。

例如,在 shell 中:

f=dump.sql
nlines=`cat $f | wc -l`
let chunk=$nlines/100

pt-fifo-split --lines $chunk $f
i=0
while [ -e /tmp/pt-fifo-split ]
do
echo "$i% is done"
mysql -e "LOAD DATA INFILE '/tmp/pt-fifo-split' INTO ..."
let i=$i+1
done

关于php - LOAD DATA INFILE + 进度跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27702827/

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