首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型数据库5亿条记录

大型数据库5亿条记录
EN

Stack Overflow用户
提问于 2011-05-17 18:27:42
回答 2查看 1.1K关注 0票数 3

我们的一个业务问题的解决方案是将大约5亿条记录存储到一个数据库中。每条记录大约有40到50列。

我有一个包含所有这些数据的文本文件,大约150 GB。(我硬盘的三分之一)

如果我以某种方式将所有这些数据加载到一个数据库中(ORACLE ?)它的表现会有多好?

我的一位同事坚持认为这绝对没问题。我甚至可以索引所有的40到50列,然后只需编写一些sql来提取数据即可。

他是对的吗?或者500万条记录对于一个数据库来说太多了吗?

附注:只需在一些非常好的答案之后添加更多信息: 40到50列将包含小字符串和/或数字。对于较小的字符串,我希望使用小于64个字符的字符串。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-17 18:47:23

如果没有关于您正在使用的RDBMS的任何信息,它是如何托管的,以及这是什么类型的数据(大文本、小数字等等),一个可靠的答案并不容易。

记录的纯粹数量应该不是问题,几乎每个现代RDBMS都可以轻松地处理5亿条或更多的记录。

它将变得更加有趣,数据是如何存储在您的RDBMS,p.e。它使用的是什么类型的文件系统,有多少磁盘空间可用于表,表如何在硬盘上展开等等,所有这些都应该考虑在内。

一般来说,我建议只索引应用程序和查询所需的列,否则它们只会减慢插入速度,占用宝贵的磁盘空间,对您毫无帮助。

这里有几个SO链接,可能会对你有进一步的帮助:

票数 3
EN

Stack Overflow用户

发布于 2011-05-17 18:44:41

你的同事是正确的-在数据库中500M的记录是很好的,我曾经使用过2G行的数据库,那是10年前的事了。索引每一列都是一个问题-索引将减慢每次插入新记录的速度,并且建立索引将花费大量的时间。您需要确定要运行的查询类型,然后对其进行适当的索引。有了这么多的记录,你可以通过规范化数据获得好处--扁平结构通常更快,但如果你有重复的长文本字段,那么用查找替换它们可能会带来存储和索引方面的好处。如果不看数据,就很难给出更精确的建议。

顺便说一句,如果你确实遇到了性能问题,你还可以将数据分区到物理上不同的表中,可能是按年划分的?

我的下一步(在您选择了您的DB平台并找到一个服务器之后)是加载数据并查看它的执行情况。我会看看如何批量加载您的数据--我是一个Sql Server大块头,因此Integration Services是可行的。我会确保您有一个惟一的键,如果它不在数据中,则添加一个identity列。然后,您就可以测试其中的一些内容了。SqlExpress是免费的,附带了SSIS,但它只能处理10GDB-但这足以让我们熟悉这些问题。

我经常批量加载一个4M的包含50+列的行表,大约需要2分钟。如果你想要更多一对一的建议,我很乐意离线。

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

https://stackoverflow.com/questions/6029489

复制
相关文章

相似问题

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