php – 使用索引改进MySQL表

前端之家收集整理的这篇文章主要介绍了php – 使用索引改进MySQL表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对 MySQL中的索引很新.我知道,我应该早点出发,但是大多数项目都足够小,我可以把它丢掉;

所以,现在我正在测试它.我通过运行EXPLAIN查询进行了测试:

查询

EXPLAIN SELECT a . *
FROM `tff__keywords2data` AS a
LEFT JOIN `tff__keywords` AS b ON a.keyword_id = b.id
WHERE (
b.keyword = 'dog' || b.keyword = 'black' || b.keyword = 'and' || b.keyword = 'white'
)
GROUP BY a.data_id
HAVING COUNT( a.data_id ) =4

首先,没有索引我得到这些结果:

然后,使用data_id和keyword_id的索引,我得到:

所以据了解,MysqL搜索的行数从61k下降到10k,这一定是对的好吗?

所以我的问题是,我在这里是正确的吗?当尝试优化时,还有什么可以考虑的吗?

更新:

此外,在AJ和Piskvor的一些帮助之后,我指出我的其他表和其列关键字没有索引我得到这个:

大改善!对?

如您所见,用于表b的键仍为NULL.您可能需要在b.keyword上添加一个索引并与之匹配
WHERE b.keyword IN ('dog','black','and','white')

这与WHERE子句的功能不同,尽管它返回相同的结果.

看起来,您可能对全文搜索感兴趣.

原文链接:https://www.f2er.com/php/139525.html

猜你在找的PHP相关文章