我在使用庞大的 WordPress 数据库来查找用户时遇到问题。我的数据库中有大约 147000 个用户,其中 75000 个用户具有相同的类别。当我尝试按类别(例如“医生”)搜索用户时,查询失败并且页面卡住
我需要 WP_User_Query 中的 $total_users 来进行分页,但查询似乎失败了。
我也尝试过这个WP_User_Query无法一次检索所有用户
但页面加载时间仍然太多。
$query_args = array(
'role' => 'professional',
'order' => 'DESC',
'orderby' => 'ID',
);
有人可以帮助我解决这个问题吗?
这是链接:网站链接
谢谢
我遇到了性能问题,并深入了解了可能有哪些简单的胜利。
当您执行
WP_User_Query
并且您想要获取附加到每个用户的所有数据(默认设置)时,实际发生的情况是首先获取所有用户 ID。然后,它循环遍历每个以获取数据对象。
因此,如果您需要的只是
wp_users
表中已设置的列,那么这里有一个巨大的优势,只需在查询的 fields
属性中指定它们即可:
$query_args = [
'role' => 'professional',
'order' => 'DESC',
'orderby' => 'ID',
'fields' => [ 'ID', 'user_login', 'user_nicename', 'user_email' ]
];
这修改了 SQL 查询来获取这些字段,并且意味着不需要服务器处理,这就是当我们谈论数千个用户时出现性能问题的地方。