自定义表上的大型查询-内存问题

时间:2018-06-26 12:43:04

标签: mysql wordpress performance

我正在构建一个插件,该插件创建可以由用户兑换的代码。我需要在WP_LIST_TABLE中显示所有生成的代码。我创建了一个名为“ bo_codes”的自定义表,它看起来像这样。

表格:https://visual23.com/table.png

我的查询如下。

$query = "
SELECT $wpdb->bo_vaping_codes.bo_code, $wpdb->bo_vaping_codes.assigned_product_name, $wpdb->bo_vaping_codes.status, $wpdb->bo_vaping_codes.run_number, $wpdb->bo_vaping_codes.author_name, $wpdb->bo_vaping_codes.date_created
FROM $wpdb->bo_vaping_codes
ORDER BY $wpdb->bo_vaping_codes.date_created DESC;
";
$data = $wpdb->get_results( $query, ARRAY_A );

我进行了测试并生成了100,000个代码,但出现此错误。 “严重错误:耗尽的内存容量为268435456字节(试图分配72个字节)”

我可以使用数据库或查询来减少所使用的内存吗?我不确定我是在做错什么还是只是在限制自己的极限。

1 个答案:

答案 0 :(得分:0)

这是UI设计问题,而不是数据库问题。

分页是不合理的-回到第一条评论:没有用户会想要查看10万个项目的列表。我要补充:“是否分页”。因此,请重新考虑用户界面;决定在不提供所有信息的情况下显示有用信息的方法。

也许首先要问列出哪个项目的“产品类别”。

也许首先是“作者”。

也许是在哪个月“创建”的。

对应用有意义的任何内容。但是请确保分组不会导致出现一堆不合理的事情,以便一次全部显示或分页显示。

对于10万个商品,在到达实际列表之前,经过两个级别的拣选可能是合理的。这样一来,每次最多只能选择100种东西。