我有一个包含30多个元键的“列表”帖子类型,当有100多篇帖子时,我觉得这可能会对数据库造成压力。通常我所做的是将每个元值按1逐1保存,如下所示:
if(isset($_POST[\'_item_stock\']) && !empty($_POST[\'_item_stock\']))
update_post_meta($post_id, \'_item_stock\', sanitize_text_field($_POST[\'_item_stock\']));
else
delete_post_meta($post_id, \'_item_stock\');
我这样做是因为如果我需要对验证进行更多的控制,我就有了它。代码中组织有序,外观美观。
The Drawback 因为它很长,而且它将每个元单独保存在数据库中。
我的另一个选择是将所有元标准化为一个数组,然后将其序列化。The Drawback 对于这种方法,我不能对序列化数据运行任何元查询,因此过滤搜索或后期排序是不可能的。
最后一个选项是对半执行,序列化查询不需要的内容以及我单独保存的所有其他内容。虽然这可能会节省一些开销,但我不希望代码看起来很凌乱或有任何断开连接的情况。
我的问题是-你通常如何处理有许多元键的帖子?当我单独保存每个元键时,数据库开销是否像我想象的那样糟糕?你认为哪种方法最好?为什么?