我想帮助您获得更新我的视频数据库(MySQL)的最佳和最干净的方法。
这些视频被订购到文件夹中,我只能逐个抓取这些文件夹。
我的服务器使用外部api来抓取数千个视频(每个视频包含唯一ID,文件夹ID,标题,网址......)。
由于我想尽可能减少api通话,我想运行每日cron作业来浏览每个文件夹并添加新视频,并删除已删除的视频。
目前我可以浏览所有文件夹,循环播放每个视频并将其添加到数据库中。
while (true){
$videos = video_get($oid, $offset, $count);
$videos = $videos['response']['items'];
$results = count($videos);
echo $results . ' || ' . $offset;
if ($results > 0){
$offset += $results;
foreach ($videos as $video) {
$i++;
echo "<br>Number : " . $i;
echo "<br>";
$data = Array (
"id" => $video['id'],
"folder_id" => $video['folder_id'],
"title" => $video['title'],
"url" => $video['url']
);
$db->insert('videos', $data);
}
}
else {break;}
}
我要问的是,考虑到大约有100000个视频,大约有20个文件夹,最好是添加所有视频并删除副本,或检查视频是否存在然后将其添加到数据库中如果是新的?
更重要的是,在api请求中删除不再存在的视频的最佳方法是什么?
我希望我已经足够清楚,但以防万一:
视频按文件夹排序。
可以随时在api端添加/删除视频。
我想将所有视频保存到我的数据库中,并根据api端是否有新视频或已移除的视频更新它们,以避免过于频繁地调用api。
感谢您的帮助。