我有一个包含30,000条UPDATE行的SQL文件。当我通过phpmyadmin上传它时,它会冻结某个点并且不会更新所有内容。
有没有办法一次执行所有30,000行,没有问题?或者我是否必须一次手动执行200行?
行示例:
UPDATE `table` SET `value1`='Some text', `value2`=0 `value3`=1 WHERE id=500;
^我有30,000行。
答案 0 :(得分:5)
PHPMyAdmin的查询解析很慢。通过SSH登录服务器并使用mysql客户端执行命令要好得多:
$ mysql -uUsername -pPassword DatabaseName < script.sql
如果您没有SSH访问权限,可以上传sql脚本(例如通过FTP)并编写一个使用system,exec或类似PHP调用命令的小型PHP脚本功能:
<?php
system('mysql -uUsername -pPassword DatabaseName < script.sql');
然后通过浏览器调用脚本。
确保使用mysql的完整路径(通常是/ usr / bin / mysql)和脚本文件。
如果您使用非系统字符集,请确保add the default_character_set选项。