Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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
PHP/MYSQL在数据库中存储大型数据集_Php_Mysql_Sql - Fatal编程技术网

PHP/MYSQL在数据库中存储大型数据集

PHP/MYSQL在数据库中存储大型数据集,php,mysql,sql,Php,Mysql,Sql,我正在建立一个收集和解析“csv”文件的平台,该文件平均包含5000行和40列;文件可以由任何注册用户上传,因此理论上可以上传和存储的文件数量没有限制(假设我每天上传的文件不超过20个)。这些文件由一个定制的PHP解析器进行解析,这有点效率,但问题来了:存储。 特别是,我想将这些数据存储在MySQL数据库中供以后使用:我应该如何组织我的数据库?我应该创建一个表,每个文件包含一行,每个单元格包含原始文件每列的内容吗?还是应该为文件中的每一行插入一行? 在我看来,第一个更好,因为第二个解决方案建立了

我正在建立一个收集和解析“csv”文件的平台,该文件平均包含5000行和40列;文件可以由任何注册用户上传,因此理论上可以上传和存储的文件数量没有限制(假设我每天上传的文件不超过20个)。这些文件由一个定制的PHP解析器进行解析,这有点效率,但问题来了:存储。 特别是,我想将这些数据存储在MySQL数据库中供以后使用:我应该如何组织我的数据库?我应该创建一个表,每个文件包含一行,每个单元格包含原始文件每列的内容吗?还是应该为文件中的每一行插入一行? 在我看来,第一个更好,因为第二个解决方案建立了大量的行,但效率更低,因为任何时候我必须提取数据库中的任何数据,我必须再次解析整个blob,然后提取我需要的数据


如果有太多用户同时连接,由于内存不足,我无法将数据存储在PHP数组中,那么在这种情况下,哪一种解决方案是最好的?

由于所有文件都有相同的列,您应该将它们存储在一个表中,然后再添加另一个列(可能引用第二个表,每个上载一行),以唯一标识一组行

例如:


这是两组数据(每组3行)的外观。

所有CSV文件都有相同的列吗?数据库中的行数几乎没有任何意义。对于几乎任何可以想象的解决方案,将数据存储在每行CSV中比将整个CSV存储在一行要好得多。是的,CSV都有相同的列sLet假设每天有20个文件,每个文件有3000行(目前最糟糕的情况是),它每天将生成大约50/60.000个新行,每月大约有200万行。几个月后可能会出现问题,我错了吗?我不知道,这取决于您试图如何处理这些行(向我们解释这一点将帮助我们回答这个问题)。无论哪种方式,将表存储为一行都是错误的做法,并且不会真正改变需要存储的数据总量……它只会降低数据的分析、排序等效率,并让我想知道为什么要使用数据库。你想对数据做什么?我想说同样的事情。首先,40 columns对我来说似乎不算太多。至于数据的存储,这完全取决于您的服务器存储限制(通常可以无限制地升级)以及搜索/解析此数据的需要。如果存储后很少访问,则无需担心性能问题。您还可以将对csv文件的引用存储在数据库中,并将csv保存在文件系统中。基本上,数据由一系列latlng点组成,其中每个点包含一些附加数据(比如data1…dataN)与坐标相关。当用户在地图上选择一个点时,它应该向用户显示与坐标相关的数据(基本上就是这个想法)你想对数据做什么?我并不在乎数据是什么。
rowId, setId, col1, col2, ...
1, 1, 'abc', 'def', ...
2, 1, 'abc', 'def', ...
3, 1, 'abc', 'def', ...
4, 2, 'abc', 'def', ...
5, 2, 'abc', 'def', ...
6, 2, 'abc', 'def', ...