可以存储为用户元的序列化数据的长度/大小是否有限制?

时间:2012-04-17 作者:John

我尝试使用update\\u user\\u meta将包含大约50000个键和相应值的数组存储到用户meta。因为这只是一个测试,所以我运行了一个for循环来生成数组。

$test = array ();
for ($i = 0; $i <= 50000; $i++) {
    $test[$i] = $i;
}
update_user_meta($user_id, \'test\', $test);
我最终得到了错误WordPress database error: [MySQL server has gone away]. 最终,我能够让它在48000个键的数组大小下工作。由于update\\u user\\u meta在存储之前将数组转换为序列化数据,因此用户meta或post meta可以处理的序列化数据是否有限制?还是因为其他问题?

我尝试了建议的超时修复here. 但我不确定它是否适用于WP 3.3.1。或者这是否能解决我的问题。

请注意,我使用的是使用MAMP的本地dev安装。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

根据DB方案meta_value 列的类型是longtext,最大大小为4GB,但您不太可能达到该值。

无论从实用角度、性能角度还是数据存储角度来看,在单个字段中存储大量数据的方式都是不好的。

我建议您对此类数据使用自定义分类法(是的,分类法不仅仅适用于post对象)

结束

相关推荐