2012-12-03 32 views
0

因此,作爲後續的一篇文章,我很好奇這是否是基於POST數據更新記錄的最有效方式。Laravel更新記錄 - 這是2個MySQL調用的最高效率嗎?

routes.php文件

//COLLECT POST DATA IN $thisOrder ARRAY 
//DETERMINE THAT $thisOrderID is the primary key of the record to be updated 
$updateOrder = Order::find($thisOrderID)->update($thisOrder); 

對我來說,似乎這是執行2個查詢:

1 - SELECT * FROM tblOrder WHERE orderid=$thisOrderID 
2 - UPDATE SET //myvalues = $thisOrder// WHERE orderid = $thisOrderID 

我明白,這是不正確的語法,但它很快解釋它。

我能理解這個嗎?使用find()命令執行SELECT並且update()正在執行更新。

如果我知道ID,不能直接進行更新嗎?

謝謝!

+0

它怎麼不選擇FOR UPDATE? –

回答

1

是的,你正在做的正確。通過使用ORM,您可以從底層SQL中抽象出自己。 IE瀏覽器。你爲簡單(可以說)和更少的代碼交易效率。這不是一件壞事,這裏的抽象是完全合法的。

我不會擔心這個。只要您在orderid列上有索引。首先構建一個工作應用程序,然後再優化。除非你能解釋你爲什麼需要,否則沒有必要進行優化。如果你需要這樣的機會,那麼這種事情將是你最擔心的。此時,您會發現應用程序的瓶頸並進行優化。這個ORM可能不會是瓶頸。

這是一個過度簡化so here is a good read that goes into a little more detail

+0

非常感謝澄清...我想這將是一段時間之前,這甚至會成爲一個問題,但我喜歡從一開始就以最有效的方式思考/編碼。 – jamis0n

+0

不用擔心! - 這只是計算成本/收益。 Laravel非常精簡,因此它與任何快速,輕量級代碼庫都是一樣的基礎。這是我最喜歡的框架 - 我認爲泰勒奧特威爾做得很好。它的酷簡單性使它成爲框架初學者的絕佳選擇,爲Zend老兵提供了一股清新的空氣。 –