目前我这么写: <?php /** * Created by IntelliJ IDEA. * User: felix * Date: 2019-03-01 * Time: 18:49 */ set_time_limit(0); $servername = 'localhost'; $username = ''; $password = ''; $dbname = ''; $i = 57007; $bingTime = microtime(true); echo 'bing ' . $bingTime . ' s' . PHP_EOL; while (9690183 > $i) { $i++; A: // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); /* check connection */ if ($conn->connect_errno) { printf("Connect failed: %s\n", $conn->connect_error); sleep(3); goto A; } $pySql = "select count(*) as sum from wzjs_product_journal_21_6 where product_journal_id = {$i}"; $result = $conn->query($pySql); if ($result === false) { printf("Invalid query: %s\nWhole query: %s\n", $conn->error, $pySql); } if ($result->fetch_assoc()['sum'] == 0) { $pySql = "INSERT INTO wzjs_product_journal_21_6 SELECT * FROM wzjs_product_journal_21 WHERE product_journal_id = {$i}"; $result = $conn->query($pySql); if ($result === false) { printf("Invalid query: %s\nWhole query: %s\n", $conn->error, $pySql); } } usleep(5); $conn->close(); usleep(5); } $endTime = microtime(true); echo ' end ' . $endTime . ' s' . PHP_EOL; $diffTime = $endTime - $bingTime; echo 'Diff Time ' . $diffTime . ' s' . PHP_EOL; echo 'i:' . $i . "\n"; 根据主键一条一条复制。我有 9690183 多条数据需要迁移,因为之前的表加不上索引了…… 不过不知为啥,经常出 PHP Warning: mysqli::mysqli(): (HY000/2002): No such file or directory in /data/wwwroot/www.scienceport.cn/copy_2.php on line 24 上面的 goto 就是打算解决这个问题。目前正在测试。之所以先查询后复制是之前老是自己就停了。而且现在也这样,连接着 shell 才会执行的比较久, 用的阿里云,关掉 shell 没多久就自己停了。就是必须看着它,要不然就自己跑不见了……这样运行的 php copy.php > copy.log & 在写这个的时候,又打印log了,不过这个程序挺过去了…… 2019年03月04日这个也不可靠,有100多万条不知道为啥没过去……正在寻找故障原因。No such file or directory 貌似是阿里云出故障了,反正今天有新闻。 2019年03月11日发现写入数据不等会有的情况索引是不会加上的,而且还丢东西。现在都能复制走了。 2019年03月12日https://my.oschina.net/guodap...这个链接写了如何退出ssh也能继续运行。
目前我这么写:
根据主键一条一条复制。我有 9690183 多条数据需要迁移,因为之前的表加不上索引了……
不过不知为啥,经常出
上面的 goto 就是打算解决这个问题。目前正在测试。
之所以先查询后复制是之前老是自己就停了。而且现在也这样,连接着 shell 才会执行的比较久, 用的阿里云,关掉 shell 没多久就自己停了。就是必须看着它,要不然就自己跑不见了……
这样运行的
在写这个的时候,又打印log了,不过这个程序挺过去了……
2019年03月04日
这个也不可靠,有100多万条不知道为啥没过去……正在寻找故障原因。
No such file or directory 貌似是阿里云出故障了,反正今天有新闻。
2019年03月11日
发现写入数据不等会有的情况索引是不会加上的,而且还丢东西。现在都能复制走了。
2019年03月12日
https://my.oschina.net/guodap...
这个链接写了如何退出ssh也能继续运行。