Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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_Database_Serialization - Fatal编程技术网

Php 多行存储数据与MySQL中的序列化数据

Php 多行存储数据与MySQL中的序列化数据,php,mysql,database,serialization,Php,Mysql,Database,Serialization,我有一个问题与以序列化形式保存大量数据有关,而不是以表中多行的形式 在我的表格中,我存储了我的应用程序用户的Facebook好友的某些个人资料相关信息,即他们的Facebook用户Id、姓名、生日。对于每个朋友,我在表中创建多行。例如,如果我的一个应用程序用户有5000个Facebook好友,我将在我的表中插入5000行。将所有好友的数据以序列化格式保存在一列中是否更好?我没有单独搜索/排序这些字段,这些列上也没有多个联接。此外,只有当有人更改了他们的Facebook个人资料信息时,这些专栏才会

我有一个问题与以序列化形式保存大量数据有关,而不是以表中多行的形式

在我的表格中,我存储了我的应用程序用户的Facebook好友的某些个人资料相关信息,即他们的Facebook用户Id、姓名、生日。对于每个朋友,我在表中创建多行。例如,如果我的一个应用程序用户有5000个Facebook好友,我将在我的表中插入5000行。将所有好友的数据以序列化格式保存在一列中是否更好?我没有单独搜索/排序这些字段,这些列上也没有多个联接。此外,只有当有人更改了他们的Facebook个人资料信息时,这些专栏才会得到更新


我想知道是否可以在这里使用PHP serialize/unserialize函数来序列化特定用户的整个Friends数组,并将所有数据存储在单个列中。这是否有助于优化我的表,并在处理此表时提供更好的响应时间?

在MySQL中,每个值都有一个单独的行和单独的列绝对是最好的选择。这样,即使没有索引,也可以在这些列上创建索引,并更轻松地按值查询它们。(对于要查询的值,您肯定应该有索引。)

然而,在PostgreSQL中,您可以存储序列化为JSON的值(通过
JSON\u encode
),并在其中索引单独的值


但是,无论哪种方式,您仍然需要将每个好友记录存储在表中的单独一行中。这并不是说您可以将5000条记录数组的序列化值转储到数据库中,并在一天内调用它。

在MySQL中,每一个值都有单独的行和列是绝对、绝对可行的方法。这样,即使没有索引,也可以在这些列上创建索引,并更轻松地按值查询它们。(对于要查询的值,您肯定应该有索引。)

然而,在PostgreSQL中,您可以存储序列化为JSON的值(通过
JSON\u encode
),并在其中索引单独的值


但是,无论哪种方式,您仍然需要将每个好友记录存储在表中的单独一行中。这并不是说您可以将5000条记录数组的序列化值转储到数据库中,并在一天内调用它。

正如您所说,如果您不需要数据搜索,则可以序列化数据,但这也可能是您应用程序中的一个缓慢过程,对于exmaple来说,这不仅仅是一个建议,一个评估,我有一些非同质的数据,这些数据不会被搜索并放在一个额外的表上,这意味着可能会失去对数据的控制,然后我更喜欢序列化这些数据并使用json进行处理,那么对于用户来说很清楚,就像你说的,如果你不需要数据搜索,那么序列化数据就可以了,然而,这也可能是一个缓慢的应用程序处理过程,这里不仅仅是一个建议,一个评估,对于exmaple,我有一些数据是不均匀的,数据不会被搜索并放在一个额外的表上,这意味着可能会失去对数据的控制,然后我更喜欢序列化该数据并使用json进行处理,那么对于用户来说就很清楚了

那么,到目前为止,在这个特定的表中,我有超过1000万行。我打算使用“mediumtext”将序列化的friends数组转储到。我已经索引了我正在获取的所有列,但是我的响应时间仍然很慢。有没有办法对这两种方法进行基准测试,并检查哪种方法更适合在我的案例中使用?嗯,到目前为止,在这个特定的表中,我有超过1000万行。我打算使用“mediumtext”将序列化的friends数组转储到。我已经索引了我正在获取的所有列,但是我的响应时间仍然很慢。有没有办法对这两种方法进行基准测试,并检查在我的案例中使用哪种方法更好?