Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将pi保存到数据库或磁盘,然后可以在10秒内查询?_Python - Fatal编程技术网

Python 如何将pi保存到数据库或磁盘,然后可以在10秒内查询?

Python 如何将pi保存到数据库或磁盘,然后可以在10秒内查询?,python,Python,pi已计算为31.4万亿位()。我想将这些数据存储在数据库或硬盘中,然后查询并使用它。我希望查询时间在10秒以内。我应该使用什么解决方案 如果一个表存储500万行数据,每行数据存储500个数字,一个表可以存储25亿位数字,那么总共需要12000个表 一个表需要1182.8GB的存储空间,所有这些都需要13.5PB的存储空间,因此查询速度会非常慢 [更新] 我想使用python 我想查询pi中出现的所有数字字符串 如果10秒不可能,则可以在一分钟内得到结果 那是数字,不是比特 以简单方式存储

pi已计算为31.4万亿位()。我想将这些数据存储在数据库或硬盘中,然后查询并使用它。我希望查询时间在10秒以内。我应该使用什么解决方案

如果一个表存储500万行数据,每行数据存储500个数字,一个表可以存储25亿位数字,那么总共需要12000个表

一个表需要1182.8GB的存储空间,所有这些都需要13.5PB的存储空间,因此查询速度会非常慢

[更新]

  • 我想使用python

  • 我想查询pi中出现的所有数字字符串

  • 如果10秒不可能,则可以在一分钟内得到结果


  • 那是数字,不是比特

    以简单方式存储的31.4万亿位将占用31.4 TB(TB=万亿字节)的磁盘空间

    压缩它,您可以将其压缩到大约10TB,但不能更紧。“信息论”说这是极限。“

    没有磁盘,即使是SSD或最快的闪存驱动器也无法在10秒内将1TB的内存加载到RAM中。如果您想要全部31.4TB的RAM,我认为您无法构建一台具有如此多RAM的机器

    将数据放入数据库时会有一些开销。2x-3x是一个典型的数字。因此,31.4TB可能会变成90TB的磁盘。或者压缩30TB。小于1 PB

    如果您想将其分块加载,我们可以进一步讨论。如果您能找出如何获取一个容纳那么多的磁盘,我可能建议使用未压缩的文本文件。然后使用fopen、fseek、read来获取任意块。任何块的“查找”开销都非常低,然后“读取”时间与读取的字节数成比例

    你用什么计算机语言编程


    更重要的是,您将如何处理数据?

    很好,尽管您可以尝试最大大小。如果您在这里找到的数据库需要一个包含两列的数据库,第一个位置和第二个数字,您不需要将它们全部存储在一个表中,您可以使用分区。stuill我认为rdms实际上不能容纳那么多。并且按位置索引,所以你可以很快地到达第n个位置,或者在一行中找到三个数字,例如,但我仍然怀疑这是否足够10秒。即使用哈希作为索引来回答你的问题,这取决于你在做什么查询。让我们假设每位16位或2万亿位。你什么时候需要检索所有2万亿位?WQUXGA显示器显示3840 x 2400像素,大致可转换为最多约230000位数字。如果您尝试打印所有2万亿位数字,您仍然可以一次检索一页。任何数据库或任何其他类型的软件都无法在10秒内从磁盘读取13 PB。存在物理限制涉及的。@nbk-在MySQL中,对于单个表:MyISAM限制为2^56字节;InnoDB限制为2^61字节(使用分区)。这比pi所需的2^45还多。所有这些都假设没有压缩。磁盘大小和操作系统文件系统限制--我没有这些数字。@artwl-世界上最快的磁盘驱动器是什么?你需要10秒。你愿意花数周的时间预处理数据,以便在10秒内找到任意子字符串吗ds?