如果提高多对多关联的速度;syncWithoutDetaching 要十秒钟才执行一次,而且cpu占用过高
歌手大约100W个,每次我获得1W个;我设置断点调试 执行syncWithoutDetaching 的前后相差10秒;于是我同时开了四个终端运行,结果cpu直接100%了;效率很慢;
foreach (Singer::where("id", ">=", 1,)->where('id', '<', 9999)->get() as $singer) {
$similarApi = Http::get('http://www.baidu.com/' . $singer->mid)->json();
foreach ($similarApi['data'] as $item) {
//查询是否已存在歌手 如果存在就关联
$checkSinger = Singer::where('did', $item['did'])->first();
if ($checkSinger) {
$singer->similar()->syncWithoutDetaching($checkSinger->id);
} else {
//不存在该歌手 跳过
}
}
}
推荐文章: