如何在没有问题的情况下执行大量SQL查询?

时间:2011-12-30 13:11:15

标签: mysql sql

我有一个包含30,000条UPDATE行的SQL文件。当我通过phpmyadmin上传它时,它会冻结某个点并且不会更新所有内容。

有没有办法一次执行所有30,000行,没有问题?或者我是否必须一次手动执行200行?

行示例:

UPDATE `table` SET `value1`='Some text', `value2`=0 `value3`=1 WHERE id=500;

^我有30,000行。

1 个答案:

答案 0 :(得分:5)

PHPMyAdmin的查询解析很慢。通过SSH登录服务器并使用mysql客户端执行命令要好得多:

$ mysql -uUsername -pPassword DatabaseName < script.sql

如果您没有SSH访问权限,可以上传sql脚本(例如通过FTP)并编写一个使用systemexec或类似PHP调用命令的小型PHP脚本功能:

<?php
system('mysql -uUsername -pPassword DatabaseName < script.sql');

然后通过浏览器调用脚本。

确保使用mysql的完整路径(通常是/ usr / bin / mysql)和脚本文件。

如果您使用非系统字符集,请确保add the default_character_set选项。