Php 在数据库中存储巨大的数组
我在做一个图像处理项目。我使用php作为GUI,使用matlab作为算法,使用Mysql作为数据库。我现在有30000张图片存储在数据库中。我的matlab程序将为每个包含300个元素的图像生成3个数组。所以,我的问题是Php 在数据库中存储巨大的数组,php,mysql,arrays,multidimensional-array,Php,Mysql,Arrays,Multidimensional Array,我在做一个图像处理项目。我使用php作为GUI,使用matlab作为算法,使用Mysql作为数据库。我现在有30000张图片存储在数据库中。我的matlab程序将为每个包含300个元素的图像生成3个数组。所以,我的问题是 是将matlab为所有图像生成的数组保存在单个txt文件中,还是为每个图像创建一个txt文件。哪种方法更容易检索数据并存储到数据库中 从txt文件复制数组并将其保存到数据库中有多难?这方面有没有标准流程 必须检索数组的元素以进行进一步计算。我们可以为此使用序列化和反序列化吗 我
任何建议和帮助都是非常值得赞赏的。谢谢。仔细阅读您的问题,不管我怎么说,关系数据库对您来说会更好,如果性能不是一个大问题,那么SQL将是解决您问题的最佳语言,而不是在PHP级别。
是的,PHP也有简单的方法来解决这些问题,尽管不像SQL那么简单。在这种情况下,最好的解决方案是创建一个单独的元表来存储与图像相关的数据(数组) 以下是一个简单的EER示例:
image\u id
(引用外键)、array
和index
的组合构成了元表的主键
我假设您可以安全地将数组的键表示为0索引,并且数组的所有值也都是数字(这就是为什么所有字段的类型都是INT
,如果不是,请相应地调整数据类型)
表示链接的图像id图像id
表示特定的数组(您说最多3个数组,所以本列中的值可以是array
)1-3
是数组中的数字索引索引
是与索引配对的数组中的值值
image_id | array | index | value
------------------------------------------------------
256 | 1 | 0 | 5
256 | 1 | 1 | 9
256 | 1 | 2 | 4
256 | 1 | 3 | 23
256 | 1 | 4 | 1
256 | 2 | 0 | 9
256 | 2 | 1 | 15
256 | 2 | 2 | 8
256 | 2 | 3 | 19
256 | 2 | 4 | 11
在上面的示例数据中,我们有两个数组(在数组
列中,每个数组由1
和2
表示),每个数组有5个元素(键在索引
列中表示,值在值
列中表示)
可以存储任意数量的数组,也可以存储任意数量的索引
您还可以在MySQL中使用GROUP BY
执行所需的数组比较计算。下面是如何找到image_id 256所有数组中每个键的最小值(假设有3个数组):
选择索引,最小值(value)作为最小值
来自图像_meta
其中,image_id=256
按索引分组
由于在(image\u id
,array
,index
)上设置了复合索引,因此这应该非常快
此设计还允许您在每张图像上拥有可变数量的索引和数组。按照此网站的工作方式,您最好提出单个/原子问题。一个问题,一个最佳答案。如果您想要讨论,请使用聊天功能或PHPbuilder.com1。什么?2.很简单。3.是的,4.编写您自己的函数足够简单
序列化
是实现go@metal_fan实际上,如果他需要处理这些值,我不会序列化它们,我也会使用MySQL作为处理引擎,除非需要在这里进行扩展。