如何高效的做数据覆盖操作

WBOY
WBOYオリジナル
2016-06-06 20:35:031264ブラウズ

我有一批数据是通过第三方接口更新的,那个接口是按分类获取的,同一个分类的下的数据每次获取玩要要进行覆盖处理, 比如图书这次获取的是1,2,3这三个id的数据三本书 过10秒我还按图书分类获取 获取的是2,3,4,5这四本书 那我就把最新的 2,3,4,5 四条数据覆盖到数据库(1删除 2,3 更新 4,5 添加)数据库目前是mysql 怎么高效的处理这个问题 接口刷新的频率很快 如果我每次都删除分类下所有数据再插入 锁表的时间实在不能忍受 求合理办法

回复内容:

我有一批数据是通过第三方接口更新的,那个接口是按分类获取的,同一个分类的下的数据每次获取玩要要进行覆盖处理, 比如图书这次获取的是1,2,3这三个id的数据三本书 过10秒我还按图书分类获取 获取的是2,3,4,5这四本书 那我就把最新的 2,3,4,5 四条数据覆盖到数据库(1删除 2,3 更新 4,5 添加)数据库目前是mysql 怎么高效的处理这个问题 接口刷新的频率很快 如果我每次都删除分类下所有数据再插入 锁表的时间实在不能忍受 求合理办法

  1. 既然第三方接口更新的很快,那为什么本地要存呢,直接使用第三方接口的数据就好了。
  2. 如果本地一定要存,可以用redis替换mysql
  3. 如果一定要存到mysql中,可以先缓存起来,定时写回到mysql中

数据量有多大?能让mysql锁表锁很久??

就只是按你说的来做,mysql,一个分类表,有个字段叫图书s,里面存了123,再刷新更新成2345。非常简单。

然后我看到了另外一个人的答案,加上你们的讨论明白不是这么简单的需求,你为什么不在问题中把这件事写清楚呢?

每个分类几百条还是一共几百条

无论哪种,你用redis做没有问题,不用担心锁表。

这样是不是会引出其他新的需求来证明这么做也不可以?

你看看一个问题,问出来,经过这么多的反复折腾,说了半天只是在和你确定需求,这中间经过了多少人反复的思索给你想解决的办法。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。