mysql表每天需要全量更新, 但不间断查询, 怎么搞?

发布于 2022-09-11 18:41:34 字数 479 浏览 18 评论 0

场景

1) 千万甚至亿级别的表, 每天要更新全量的数据. 之所以全量更新, 是因为, 每天新的数据相对于旧数据有增, 有减, 有更新. 所以只能全量更新.
2) 同时, 需要保证能够提供不间断的查询.

这两条很是冲突.
若是对于只增不减的数据, 我可以每天一个partition放增量的数据, 然后用sqoop导出到mysql, 根据update-key对已有数据更新替换, 没有的新增. 虽然可能慢了点, 但是能保证不间断查询.
但是, 现在对于有增, 有减, 有更新的数据. 表示有点棘手.
目前想到是, mysql里准备A,B两张一样的表. web服务里面, 在新的一天, 比如8点开始, 定时检查, 若当前用的A表, 那么就去检查B表状态, 若成功更新了数据, web服务则切换到B表, 今天的所有查询就会走B表. 到第二天同样如此.

不知道, 还有没有更好的方案?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

简单气质女生网名 2022-09-18 18:41:34

如果是 MyISAM 表,很难做到更新数据的同时还能读数据,读写数据都会加表锁,即使做了主从也一样

然而,如果是 InnoDB 的表,完全不用担心,InnoDB 读取数据如果不显式加锁,采用的是一致性非锁定读,更新数据不影响读取操作

前事休说 2022-09-18 18:41:34

每天全量更新是怎样的操作呢?
是每天固定时间把数据清掉再导进去?
还是一天之内不断的DML操作呢?
如果是第二种,MySQL主从的读写分离你可以了解一下;
如果是第一种,需要把全量更新的详细操作说清楚才好做判断

软糯酥胸 2022-09-18 18:41:34

主从或者双机热备。。。一个写,一个读刚刚好。。。

如果没结果 2022-09-18 18:41:34

主备结构应该可以更好的满足你的需求吧。可以参考官方文档:https://dev.mysql.com/doc/ref...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文