- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个几年前为成员(member)网站写的查询。我不太擅长使用 $wpdb (或一般的 MYSQL 代码)来编写自定义查询,并且该网站已经发展了很多。现在 wp_usermeta 表中有大约 150k 行,并且运行查询的页面在加载之前挂起几秒钟。我预计随着时间的推移以及网站获得更多用户,情况会变得更糟。
任何有关如何加快此查询速度的帮助将不胜感激。
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$limit = 15;
$offset = ($paged - 1) * $limit;
$key = 'first_name';
$sql = "SELECT SQL_CALC_FOUND_ROWS {$wpdb->users}.* FROM {$wpdb->users}
INNER JOIN {$wpdb->usermeta} wp_usermeta ON ({$wpdb->users}.ID = wp_usermeta.user_id)
WHERE 1=1
AND wp_usermeta.meta_key = '$key'
AND wp_usermeta.meta_value <> ''
AND wp_users.user_registered < '2014-01-30'
ORDER BY wp_usermeta.meta_value ASC
LIMIT $offset, $limit";
$members = $wpdb->get_results($sql);
$found_rows = $wpdb->get_var("SELECT FOUND_ROWS();");
foreach ($members as $member) { // display member info here }
*注意:我正在分页...不会在一页上显示所有结果。
最佳答案
这里有几件事。
首先,您似乎是按用户名排序,但没有检索或显示它。这有点奇怪。您可以通过 wp_users.user_nicename 进行排序,并省略与 wp_usermeta 的连接。这将节省一些加入时间。该列的值由用户在其个人资料中设置,并反射(reflect)她希望被了解的身份。因此,它很可能是一个合适的排序列。
其次,您将检索 wp_users 中的所有列 (*)。您是否可以避免检索所有这些内容,而是列举您真正需要的一个?这将节省排序时间。
您的查询将变成这样。
$sql = "SELECT SQL_CALC_FOUND_ROWS
id, user_login, user_nicename, etc etc
FROM {$wpdb->users}
WHERE user_registered < '2014-01-30'
ORDER BY user_nicename ASC
LIMIT $offset, $limit";
当您对大量用户进行分页时,您陷入了困境,不可避免地会出现效率低下的情况。但这应该比你拥有的更好。
关于mysql - wp_usermeta 查询在加载前挂起几秒钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21840343/
我有一个几年前为成员(member)网站写的查询。我不太擅长使用 $wpdb (或一般的 MYSQL 代码)来编写自定义查询,并且该网站已经发展了很多。现在 wp_usermeta 表中有大约 150
当 wp_usermeta 包含 3 列中的所有数据时,如何将 wp_usermeta 下面的数据插入到公司表中: wp_usermeta的结构为:ID - user_id - meta_key -
我正在尝试查找具有所有四个限定值的 user_id - 每个值都位于数据库表的不同行中。 我正在查询的表是 wp_usermeta : Field Type
我想使用 WordPress 内置函数查询 wp_usermeta 表以检索用户的一些元数据。我该怎么做?我不想使用直接的 mysql 查询。 最佳答案 您需要使用 $users = get_user
我正在尝试优化一个拥有大约 13,000 名用户的 Wordpress 网站。目前,每个新用户都会向 wp_usermeta 表添加大约 20 行,因此涉及该表的查询开始变慢。我们不使用为每个用户添加
我有一个 Wordpress 站点,用户可以在其中注册为不同语言的教师或学生。 我现在正尝试通过 phpMyAdmin 搜索所有注册为 French teachers 的用户,但我不知道应该使用哪个查
正在为工作项目开发我的第一个 WP 插件/学习 SQL。 我正在使用 mySQL 5.5,并计划通过 PHP 中的 $wpdb->query() 函数运行以下代码,尽管我现在直接在 phpMyAdmi
我创建了一个简单的 html 表单,用于向我编写的 php 脚本提交两个值(车牌号和状态)。我正在使用 wordpress。我希望脚本在 wp_usermeta 表中查找用户,并选择具有与表单中提交的
我正在编写一个插件,它使用...从 WordPress 数据库中获取一组数据 $data = $wpdb->get_results("SELECT * FROM $wpdb->users", ARRA
用例背景:我正在使用 WordPress 网站来管理成员(member)资格,我 PC 上的 ID Card 软件将连接到一个表格以生成其信息。它可以连接到仅一个表。 目标:我需要一个名为“id_ca
我有一个自定义查询,可以使用我编写的统计插件的 user_meta 拉取用户。我可以根据日期范围选择 (WHERE),也可以按任何元字段进行排序,但是,我不能同时进行这两项操作。我快疯了!!这是我的查
我有一个查询,旨在从 Wordpress 表中返回用户详细信息。如果我只是选择我想要的列名,那会很好,但在 Wordpress 中有一个 usermeta 表,它有 2 列 - 1 称为元键,1 称为
我一直在为停止为我工作的 SQL 查询而伤脑筋。我有以下查询: SELECT count(ID) AS total FROM `wp_users` WHERE ID NOT IN (SELECT us
我创建了一个共享相同用户(共享相同的 wp_users 和 wp_user_meta 表)的 Woocommerce 商店(数据库前缀 wp_)和一个 Wordpress 博客(数据库前缀 wp_ne
我正在尝试使用以下查询从 wp_users 和 wp_usermeta 表中导出用户信息: SELECT a.ID, a.display_name, a.user_login, a.user_emai
对于令人困惑和繁琐的问题,我深表歉意,但无论如何我需要执行以下操作:在“wp_usermeta”表中,我为所有用户提供字段 (meta_keys)“category”和“request_categor
此时,我正在从 Magento checkout 检索数据并将数据插入 wp_users 表 - user_login、user_pass、user_nicename、user_email、user_
我创建了一个共享相同用户(共享相同的 wp_users 和 wp_user_meta 表)的 Woocommerce 商店(数据库前缀 wp_)和一个 Wordpress 博客(数据库前缀 wp_ne
我试图在 Wordpress wp_usermeta 表下按三个条件进行搜索,如下所示: umeta_id user_id meta_key meta_value
我是一名优秀的程序员,十分优秀!