Mysql 检查存在性并将数据与数百万行同步
我正在开发基于短信的服务平台。在印度,我们有两种不同类型的发送短信的路线-促销和运输。通过促销路线发送的短信必须对照国家维护数据库(DND)进行检查,该数据库目前拥有231450000个手机号码 我的问题是Mysql 检查存在性并将数据与数百万行同步,mysql,database,synchronization,Mysql,Database,Synchronization,我正在开发基于短信的服务平台。在印度,我们有两种不同类型的发送短信的路线-促销和运输。通过促销路线发送的短信必须对照国家维护数据库(DND)进行检查,该数据库目前拥有231450000个手机号码 我的问题是 存储此数据(DND)的有效方法是什么 检查数字是否存在于这些数字中的有效方法是什么 电信管理局每周提供两次这些号码的增量转储(DND)。如何将转储与现有数据库同步 我应该使用mysql来存储这些数据,包括手机号码,还是其他内存存储 编辑: 每行数据由手机号码和区号、用户偏好等少数偏好组成 每
提供DND转储的样本。这里
Opstype下的A
表示必须添加记录,而asD
表示必须删除记录。Gordon的右边。这个应用程序很大,要求很高,而且错误或失败可能会给客户或权威机构带来麻烦
MySQL可以处理查找负载吗?在具有故障切换功能的负载平衡服务器集群上,它可能可以。但这是一个很大的负担
另一方面,如果您将此数据集加载到内存中的数据结构(如C#字典或Java哈希映射)中,它可能非常适合运行64位操作系统的16 GiB服务器。您可以构建一个简单的web服务来回答您的查询。您可以对这些服务器进行负载平衡,因此如果其中一个服务器崩溃,您可以在重新加载时依赖其他服务器
您还可以使用redis或memcached来处理此数据。这种解决方案可能比同等大小的MySQL解决方案更具可扩展性,更易于操作
如果您明智的话,您将调整此系统的大小,以处理稳定的查询负载,至少是您想象的峰值负载的1.5倍。这将给你一些过载的余地
一个大问题是:你是否必须在午夜准确地一次切换到更新的数据?或者,您可以在获得新数据后立即开始使用它吗?听起来您应该与熟悉此问题的供应商联系。你的问题对这个论坛来说太广泛了。这与供应商无关。他们只是提供了一个csv格式的手机号码转储,该转储必须与数据库同步。插入新数据并删除不存在的数据。您在此处向我们展示了一个非常大的项目,但没有提供很多详细信息。您有25亿行(2300万)的数据收集,每周更新两次。你不会说集合的每一行都有什么。只是电话号码吗?您没有说每秒需要多少次查找,或者这些查找必须检索什么。您没有说每周两次的更新是完全替换现有集合还是包含一系列添加和删除。你不会说每两周更新一次需要多长时间。你有十个小时吗?一天?三天?@OllieJones-问题更新。感谢您的输入。数据一有就可以使用,但更新必须在午夜之前完成。