WordPress - SQL 查询优化

Posted

技术标签:

【中文标题】WordPress - SQL 查询优化【英文标题】:WordPress - SQL Query Optimization 【发布时间】:2019-08-02 21:29:00 【问题描述】:

将条件 (meta_key = 'items') 添加到我的查询中是否更好,或者这不是必需的。

我告诉自己,将研究限制在只有 meta_key 等于 items 的情况下才能优化我的 SQL 查询。

global $wpdb;
$value = 'my_vaue';     
$result = $wpdb->get_results("SELECT * FROM wp_usermeta WHERE (meta_key = 'items') AND (meta_value LIKE '%%$value%%')");

谢谢!

【问题讨论】:

【参考方案1】:

这是您的查询:

SELECT *
FROM wp_usermeta
WHERE meta_key = 'items' AND
      meta_value LIKE '%%$value%%';

(为什么你的模式中有两个'%'?那相当于一个。)

您的问题不是性能问题,而是功能问题。替代方案是:

SELECT *
FROM wp_usermeta
WHERE meta_value LIKE '%%$value%%';

首先在“项目”中搜索您的值。第二个搜索表中的所有行。使用与您想要的功能最匹配的那个。

除非“项目”在表中非常罕见,否则两个查询都会进行全表扫描。性能可能会以读取数据为主。但是,like 有点贵,所以第一个版本可能会快一点。

【讨论】:

以上是关于WordPress - SQL 查询优化的主要内容,如果未能解决你的问题,请参考以下文章

优化 Wordpress 查询

如何优化我的查询?使用类别和标签列表导出 Wordpress 帖子

SQL 数据库查询的优化工具及实用

SQL查询优化

数据库牛人是如何进行SQL优化的?

SQL多个表联合查询优化的问题