2011-12-30 55 views
1

我有一個包含30,000條UPDATE行的SQL文件。當我通過phpmyadmin上傳時,它會在某個點凍結,並不會更新所有內容。如何在沒有問題的情況下執行大量的SQL查詢?

有沒有辦法一次執行所有30,000行,沒有問題?或者我必須一次通過並手動執行200行?

行實例:

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

^I有30000線那樣。

+0

我懷疑這取決於「凍結」是由於一些SQL錯誤和/或錯誤和/或配置...任何錯誤消息(S)?日誌顯示了什麼? – Yahia 2011-12-30 13:13:17

+0

是的,最好是小批量更新。 – 2011-12-30 13:14:29

+0

你能向我們展示一些這些行嗎?我試圖得到的是:是否有任何方式可以計算WHERE子句或值? – 2011-12-30 13:15:17

回答

5

PHPMyAdmin的查詢解析速度很慢。這是更好的通過SSH登錄到服務器並使用mysql客戶執行命令:

$ mysql -uUsername -pPassword DatabaseName < script.sql 

如果你沒有SSH訪問,你可以上傳SQL腳本(通過FTP等)和寫一個小PHP腳本調用使用systemexec或類似PHP函數命令:

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

然後通過瀏覽器調用腳本。

請確保您使用mysql的完整路徑(通常爲/ usr/bin/mysql)和您的腳本文件。

如果您使用非系統字符集,請確保您使用的是add the default_character_set選項。

+0

謝謝!!!!!!〜 – supercoolville 2011-12-30 13:34:32

相關問題