database - 5亿条记录的大数据库

标签 database performance

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

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

如果我(以某种方式)将所有这些数据加载到数据库(ORACLE?)中,它的性能如何?

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

他说得对吗? 还是 5 亿条记录对于一个数据库来说太多了?

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

最佳答案

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

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

数据如何存储在 RDBMS 上会变得更有趣,p.e.它使用什么样的文件系统,表有多少磁盘空间,表在硬盘上的分布方式等等,这些都应该考虑在内。

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

这里有一些 SO 链接可能会进一步帮助您:

关于database - 5亿条记录的大数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6029489/

相关文章:

c - 可读性与可维护性 : Condensing statements to loops

performance - 原始类型 HashSet 或 HashMap 比 Object 快 10 倍?

database - Cassandra 中非均匀范围数据的均匀分区

sql - 图形数据库(如 Neo4j)什么时候不好用?

php - 关键问题: Which key strategy should I use in my database?

mysql - 存储过程中的 "@"符号?

php - <img> 标签不适用于本地源路径

c# - 高效存储和显示富文本

performance - Bash 脚本 super 慢

Java:执行连接变量和文字的 StringBuilder.indexOf() 的开销