Home  >  Article  >  Backend Development  >  如何高效的做数据覆盖操作

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

WBOY
WBOYOriginal
2016-06-06 20:35:031224browse

我有一批数据是通过第三方接口更新的,那个接口是按分类获取的,同一个分类的下的数据每次获取玩要要进行覆盖处理, 比如图书这次获取的是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做没有问题,不用担心锁表。

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

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn