我正在處理的應用程序有一個小問題。該應用程序用作開發人員工具將表中的數據從MySQL服務器轉儲到開發人員使用Unix curl命令抓取的JSON文件。到目前爲止,我們使用的數據庫是相對較小的表(2GB或更少),但是最近我們已經進入另一個使用完全填充表(40GB +)和簡單的PHP腳本中斷的測試階段。這裏是我的腳本:使用PHP將大型數據庫轉儲到JSON中
[<?php
$database = $_GET['db'];
ini_set('display_errors', 'On');
error_reporting(E_ALL);
# Connect
mysql_connect('localhost', 'root', 'root') or die('Could not connect: ' . mysql_error());
# Choose a database
mysql_select_db('user_recording') or die('Could not select database');
# Perform database query
$query = "SELECT * from `".$database."`";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
while ($row = mysql_fetch_object($result)) {
echo json_encode($row);
echo ",";
}
?>]
我給你的問題是,我能做些什麼,使這個腳本更好的有關處理更大的數據庫轉儲。
腳本是否只是超時?如果是這樣,可以查看您的默認腳本時間限制(php.ini中的max_execution_time),或者僅使用'set_time_limit(0)'進行測試。 – sgroves
如果您通過Webbrowser調用PHP腳本,則會在30秒後超時。這是它破裂的原因嗎?如果是這樣,通過控制檯調用它。但是你爲什麼不調用[mysqldump](http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html)命令? – PKeidel
它不會解決你的問題,但我建議將'$ database'重命名爲'$ table'(它會更合理)。 – Jocelyn