0
只是好奇,如果知道 - 我們需要做一個有條件更新的大表,那麼這是最好的approach-MySQL:直接更新或選擇條件更新之前?
直接做一個更新或檢查現有的更新之前的條目。
function doDirectUpdate()
{
// UPDATE table WHERE condn
}
OR
function doCheckAndUpdate()
{
// SELECT COUNT(id) AS exist FROM table WHERE condn
if(id exists)
{
// UPDATE table WHERE condn
}
else
{
echo 'No matching entry';
}
}
沒有答案提供幫助您找出採取哪種方法? –
但是想知道關於表現的答案。如果我們考慮一個包含數百萬數據的表格,第二種方法對於現有的標識符會花費兩倍的時間。 –
如果有任何行存在,而不是隻更新匹配的行。您應該執行選擇的唯一時間是如果您有其他邏輯指出如果有超過X匹配的行不更新。由於UPDATE返回更新的行數,因此匹配,您應該獲取該返回值以確定是否需要echo「無匹配條目」。 –