作爲一個例子,用這個腳本;當php代碼沒有達到release-mysql-lock階段時會發生什麼?
mysql_query("LOCK TABLES mytest WRITE;");
for ($i = 1; $i < 100000; ++$i) {
mysql_query("INSERT INTO mytest (Value, Value2, Value3) VALUES ($i, $i, $i);");
}
mysql_query("UNLOCK TABLES;");
如果腳本超時會發生什麼/用戶電腦死機/不管之前達到UNLOCK TABLES
階段?請問mysql會「通知」請求鎖的客戶端是否已斷開連接並正確釋放鎖,否則會被無限制地卡住?
想到的第一個問題是你的sql引擎支持鎖定,首先? ..和「無限」? – Blake 2012-04-21 19:05:44
您可能想要使用'ignore_user_abort(true);'來確保您的腳本完成,而不管用戶是否因其他原因而中止請求或斷開連接。 – ThiefMaster 2012-04-21 19:08:25
@Blake [無窮](http://dictionary.reverso.net/english-definition/infinitively)有什麼問題?是的,它支持鎖定。 – natli 2012-04-21 19:08:58