表:職位空缺
id int unsigned Auto Increment
code varchar(191) NULL
start_time timestamp NULL
end_time timestamp NULL
business_unit_id int unsigned
job_id int unsigned
on_date date
break int NULL
shift_id int unsigned
total_numbers int
表:vacancy_details
id int unsigned Auto Increment
vacancy_id int unsigned
day_id int unsigned
shift_id int unsigned
rate_type enum('flat_rate','hourly_rate') [hourly_rate]
start_time 時間戳 NULL
end_time 時間戳 NULL
break int NULL
total_hours decimal(10,2) NULL
client_rate decimal(8, 2) 空
表:vacancy_staff_rates
id int unsigned Auto Increment
vacancy_id int unsigned
vacancy_detail_id int unsigned NULL
就業型別_id int 無 符號
員工率 十進制(8,2) NULL
public function store_multiple($subdomain, Request $request){
if($request){
$payloads = $request->data;
foreach($payloads as $payload){
$payload = (object) $payload;
//insertion(3 tables) and all the calculations and logic are doing in this add_vacancy()
$vacancy = Vacancy::add_vacancy($payload);
}
}
}
這是3張桌子。當我添加 10 或 20 時,插入速度很快,但如果添加 100 或更多,則需要更多時間。任何人都可以提出一種更胖的方法嗎?
uj5u.com熱心網友回復:
建議:
將 200 行收集到一個單獨的表(可能是一個TEMPORARY表)中。然后根據需要在此表中調整值。一些(全部?)按摩可以批量進行;也就是說,同時所有 200 行。如果您需要“規范化”(將一些字串轉換為 id),這是一個很好的時機。
然后,作為最后一步,做一個單曲INSERT INTO real SELECT ... FROM temp,把它們放在它們所屬的地方。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/350322.html
