5
laravel雄弁が行を更新する際に1つのクエリしか実行しないかどうか不思議でした。だから私は、次のLaravel Eloquent更新時に2つのクエリを実行しますか?
Route::get('/cli', function(){
DB::enableQueryLog();
$client = Client::findOrFail(1);
$client->first_name = 'Noob';
$client->save();
return response()->json([
'client' => $client->first_name,
'query' => DB::getQueryLog()
], 200);
});
を試してみましたこれは、だから私はDBファサードを使用して考えた私は、次のような結果
{
"client": "Noob",
"query": [{
"query": "select * from `clients` where `clients`.`id` = ? limit 1",
"bindings": [
1
],
"time": 0.71
},
{
"query": "update `clients` set `first_name` = ?, `updated_at` = ? where `id` = ?",
"bindings": [
"Noob",
"2017-10-07 12:03:05",
1
],
"time": 3.36
}
]
}
を与えました。それはクライアントのインスタンスを返されませんでしたが
Route::get('/cli', function(){
DB::enableQueryLog();
$client = DB::select("update clients set first_name= 'Admin test' WHERE id=1");
return response()->json([
'client' => $client->first_name,
'query' => DB::getQueryLog()
], 200);
});
と結果が
{
"client": [],
"query": [
{
"query": "update clients set first_name= 'Admin test' WHERE id=1",
"bindings": [],
"time": 3.2
}
]
}
これ一つでは、唯一のクエリを実行しました。私の質問は、方法や戦略を使用する必要があるトラフィックの多いサーバーの場合ですか?他にも優れたテクニックやテクニックがありますか?
もう1つの短い質問です。 DB :: select()は雄弁に比べて速いのですか? –
私はそれがパフォーマンスの問題で大きな違いを作ってくれるとは思っていません。大きな結合クエリでは、より高速なパフォーマンスを与えるかもしれません。 – iCoders