2015-10-05 102 views
-1

我在這裏問了一個問題:Insert different values in array in MySQL in the same columns with just 1 insert ,我得到了這樣的回答:https://stackoverflow.com/a/32954304/4611298在數據庫中創建多個查詢,或者處理數據並僅創建一個查詢?

現在我想知道至極的方式是最有效的。

此:

for ($i=0; $i<$count; $i++) 
{ 
    mysql_query("INSERT INTO blah (foo, bar) VALUES (".$array[$i].", 1)"); 
} 

或者這樣:

$query = "INSERT INTO blah (foo, bar) VALUES "; 
for ($i=0; $i < $count; $i++) 
{ 
    $query .= "(".$array[$i].", 1), "; 
} 
$query = substr($query, 0, -2); 
//rtrim($query, ", "); 
mysql_query($query); 

至極的方式在陣列中插入多個值是最有效的?

級聯和substrrtrim不工作,我不知道爲什麼)可能會使第二個選項比第一個慢嗎?


P.S .:我知道mysql_query已被棄用。


這不是重複的,因爲我在問一個PHP的具體問題。

+0

你將不得不測試它,但從數據庫的角度來看,1插入將是最有效的。 – AbraCadaver

+0

BTW插入性能足夠快以至於很少成爲瓶頸,您不應該擔心它 – Federkun

+0

問題是類似的,但在這裏我給出了示例,它比其他問題更明確,它特定於PHP。 – Rafael

回答

1

一個插入查詢會更有效率。

如果您確實希望執行多個插入操作,則使用準備好的語句將是下一個最有效的操作。

像你這樣的單個插入查詢在你的第一個例子中顯示效率最低。

1

後者更快;使用預先準備好的語句在速度上是可比的,但我猜想mysql_query不支持這些。而且,由於最有可能的查詢長度限制,所以在該循環中必須小心。