我每 3 小时通过查询获取 Twitter 数据。其中一个字段 url
是此处的关键。对于每个网址,我都有 retweet_count
值。
有时在接下来的 3 小时内我会得到与之前类似的 url 记录。但是 retweet_count
带有更新的新值。
在每个查询中,我都会获取超过 200 个网址。
一种方法是在每次插入期间检查该 url
是否存在。如果没有则直接插入。如果已经存在,则获取以前的 rt_count 值并与新值进行比较,如果不同则更新它。
渐渐地,我的数据将增长到表中缺乏记录。上述情况会花费太多的延迟。
有没有更好的方法来做到这一点?有什么乐观的解决方案吗?
$insertQuery2 = "INSERT INTO frrole_article_sentiment (`url`, `sentiment`, `title` , `time` , `img_url` , `rt_count` , `tweet_count`, `today`, `youtube_url`, `hash`) VALUES ('".$url."','".$sentiment."','".$title."','".$time."','".$img_url."','".$rt_count."','".$tweet_count."','".$today."', '".$is_youtube."', '".$hash."')";
if (!mysqli_query($con,$insertQuery2))
{
//die('Error: ' . mysqli_error($con));
}
最佳答案
由于您使用的是 MySQL,因此可以使用 ON DUPLICATE KEY UPDATE
功能:
http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html
您的查询将类似于:
INSERT INTO frrole_article_sentiment (url, rt_count)
VALUES('$url', '$rt_count')
ON DUPLICATE KEY UPDATE rt_count=$rt_count;
(“url”假定为 PK,为了简单起见缩短了查询,您应该包含所有字段)
关于mysql - 以最佳方式更新表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21351797/