gpt4 book ai didi

mysql - 简单的内连接和索引

转载 作者:行者123 更新时间:2023-11-29 16:17:04 25 4
gpt4 key购买 nike

我有一个简单的内部联接查询,如下所示:

SELECT DISTINCT t.guid, t.post_title 
FROM wph3_posts t
INNER JOIN wph3_postmeta tr
ON t.ID = tr.post_id AND tr.meta_value LIKE '%>Washing</a>%' AND t.post_status = 'Publish'
ORDER BY t.post_date DESC LIMIT 3

当我进行 MySQL 解释时,我得到以下输出:

|id|select type|table|type|possible_key|key|key_len|ref|rows|extra|
:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|
|1|SIMPLE|t|ALL|PRIMARY, myKey|NULL|NULL|NULL|29859|Using where; Using temporary; Using filesort|
|1|SIMPLE|tr|ref|post_id|post_id|8|y345435_wp946.t.ID|6|Using where; Distinct|

“myKey”索引刚刚创建,是一个带有 (ID, post_status) 的 wph3_posts 索引

该键仍然被忽略,并且对于正在使用的键显示为 NULL。该查询大约需要 1.4230 来执行,我真的很想缩小范围。

编辑:交换我的 key 顺序后:wph3_posts 与 (post_status, ID) 然后我可以将 myKey 用作索引,但不幸的是它没有为性能做很多事情。

最佳答案

非常感谢Barmar感谢您向我指出这一点。

在我的原始查询中,我搜索所有元值,而不是告诉它搜索存储在我正在查找的特定键下的元值。所以tr.meta_key = 'item_html' AND tr.meta_value LIKE '%>Washing</a>%' 是其中的关键。

我更新的查询:

SELECT DISTINCT t.guid, t.post_title 
FROM wph3_posts t
INNER JOIN wph3_postmeta tr
ON t.ID = tr.post_id AND tr.meta_key = 'item_html' AND tr.meta_value LIKE '%>Washing</a>%' AND t.post_status = 'Publish'
ORDER BY t.post_date DESC LIMIT 3

这将查询时间减少到 0.2171 秒,这是一个非常好的改进。

关于mysql - 简单的内连接和索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54691975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com