我正在尝试优化本地数据库在正在开发的 Web 应用程序中的填充速度。目前,它使用 PHP 访问数据库,然后使用 Javascript 将该数据插入本地数据库。
问题是,除了几个条目之外,任何东西都会减慢它的速度,我很确定这是因为它为每一行执行一个单独的 SQL 查询。我一直在阅读事务(提交和回滚等等),这似乎是一个答案,但我不完全确定如何实现它,甚至不知道在哪里实现它。
这是加载特定表的函数之一的示例。
function ploadcostcodes()
{
$IPAddress = '';
$User = '';
$Password = '';
$Database = '';
$Company = '';
$No='';
$Name='';
ploadSQLConnection($IPAddress,$User,$Password,$Database,$Company);
// 这连接到信息来自的实际数据库。
$Login = 'XXXXXXX';
$conn=mssql_connect($IPAddress,$Login,$Password);
if (!$conn )
{
die( print_r('Unable to connect to server', true));
}
mssql_select_db($Database, $conn);
$indent=" ";
$sql="SELECT Cost_Code_No as No, Description as Name, Unit_of_Measure FROM v_md_allowed_user_cost_codes WHERE Company_No = " . $Company . " and User_No = '" . $User . "'";
$rs=mssql_query($sql);
if (!$rs)
{
exit("No Data Found");
}
while ($row = mssql_fetch_array($rs))
{
$No = addslashes($row['No']);
$Name = addslashes($row['Name']);
$Name = str_replace("'",'`',$Name);
$Unit = addslashes($row['Unit_of_Measure']);
//THIS IS WHERE I SEE THE PROBLEM
echo $indent."exeSQL(\"INSERT INTO Cost_Codes (Cost_Code_No,Name,Unit_of_Measure) VALUES('".$No."','".$Name."','".$Unit."')\",\"Loading Cost Codes...\"); \r\n";
}
mssql_free_result($rs);
mssql_close($conn);
return 0;
}
我不知道交易需要什么(或者即使那是需要做的)。有用于访问数据的 MSSQL、用于插入数据的 SQLite 和运行 PHP 代码的 Javascript。