首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查是否存在并同步数百万行的数据

检查是否存在并同步数百万行的数据
EN

Stack Overflow用户
提问于 2016-01-03 13:58:20
回答 1查看 115关注 0票数 1

我正在开发基于sms的服务平台。在印度,我们有两种不同的路线发送短信-宣传和运输。通过宣传路线发送的短信必须与国家维护的数据库(DND)进行核对,该数据库目前拥有231450000个移动电话号码。

我的问题是

  1. 存储这些数据的有效方法是什么(DND)。
  2. 检查的有效方法是什么,数字是否存在于这些数字中。
  3. 每周两次,电信当局提供这些数字的增量转储(DND)。如何将转储与现有的db同步。
  4. 我是否应该使用mysql来存储这些数据,这将包括移动号码,或任何其他内存中的存储?

编辑:

  1. 每一行数据由移动号码和区号、用户偏好等几个首选项组成。
  2. 每周提供两次的数据转储只包含增删,而不包含整个数据。
  3. 查找频率可能非常大。实际上,从平台发送的每条短信都必须首先对数据(DND)进行查找。因此,如果平台每秒处理100条短信,那么它必须每秒对这些数据进行100次查找。查找简单地根据数据库中的数据(DND)检查特定移动号码的存在。
  4. 新的增量数据转储(增删)只能在几个小时内同步,因为转储是由电信当局在白天提供的,而同样的转储必须在午夜00:00之前运行。因此,同步数据的总时间约为3小时。

样本DND转储

提供了DND转储的样品。这里,必须添加A下的Opstype意味着记录,而D则意味着必须删除记录。

EN

回答 1

Stack Overflow用户

发布于 2016-01-03 17:17:58

戈登是对的。这个应用程序很大,要求很高,而且似乎错误或失败可能会给客户或当局带来麻烦。

MySQL能处理查找负载吗?在具有故障转移的负载均衡服务器集群上,可能可以。但这是一个很大的负担。

另一方面,如果您将这个数据集加载到内存中的数据结构中,比如C#字典或Java映射,那么它很可能适合运行64位操作系统的16 GiB服务器。您可以构建一个简单的web服务来回答您的查询。您可以负载平衡这些服务器,因此,如果其中一个崩溃,您可以依赖其他的,而它重新加载。

您也可以使用redis或memcached来处理这些数据。与同等大小的MySQL解决方案相比,这种解决方案可能更具有可伸缩性,并且更易于操作。

如果您是明智的,您将对这个系统进行调整,以处理稳定的查询负载,至少是您想象的峰值负载的1.5倍。这会给你一些过载的空间。

一个很大的问题是:你是否必须一次又一次准确地在午夜切换到更新的数据?或者,一旦你有了新的数据,你就能开始使用它吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34577284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档