我应该在包含超过十亿行的mysql数据库设计中使用啥方法来使用最少的时间找到特定的值?

Posted

技术标签:

【中文标题】我应该在包含超过十亿行的mysql数据库设计中使用啥方法来使用最少的时间找到特定的值?【英文标题】:What approach should I use in mysql database designing that includes more than billion of rows to find particular value using minimum of time?我应该在包含超过十亿行的mysql数据库设计中使用什么方法来使用最少的时间找到特定的值? 【发布时间】:2018-04-25 21:46:14 【问题描述】:

我有一个 Django 项目,我必须解决以下任务:客户端将电话号码粘贴到搜索字段,应用程序返回完整地址。如果数据库中没有请求的地址,则应将其添加到另一个未知号码的数据库表中。因此,当管理员上传号码-地址对列表时,应用程序应检查未知号码的数据库表中是否存在每个号码。如果存在 - 它应该被删除。一段时间后,该数据库将包含超过十亿行。我的方法是创建两个数据库表:首先 - 主表有两列:“数字”和“地址”。对于“数字”列,我提供索引以便更快地搜索地址。第二个 - 带有未知数字的表,其中将是单列“数字”,也应该被索引。所以,寻求专家的帮助:我觉得对吗?或者什么方法应该是解决这个任务的最佳方法?

我不能要求你深入回答,我只需要我应该往哪个方向前进。

非常感谢。我很乐意为您提供任何帮助(cmets、链接等)。

【问题讨论】:

SO 的想法是提出非常具体的问题并期望得到明确的答案。你应该提供一个较短的标题。 【参考方案1】:

number 应该是每个表中的PRIMARY KEY。这将使“十亿行”不是问题。

两条稍微简单的 SQL 语句可以非常快速地执行您描述的维护。

【讨论】:

以上是关于我应该在包含超过十亿行的mysql数据库设计中使用啥方法来使用最少的时间找到特定的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在超过 100 亿行的海量数据集上执行选择

从包含数万亿条记录的 Oracle 表中删除数十亿条记录

无法理解数十亿行的更新计数 INSERT

Postgres- pgsql 花费更多时间从超过 15 亿行的表中检索数据

mysql在具有1亿行的表上创建索引

删除实时数据库上超过 17 亿行的未索引表(SQL Admin Nightmare)