首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个简单连接Vs。多个简单选择

问多个简单连接Vs。多个简单选择
EN

Stack Overflow用户
提问于 2011-03-04 05:54:55
回答 2查看 75关注 0票数 0

我有一个meta表,如下所示

代码语言:javascript
复制
ID     post_id     meta_key      meta_value
1      1           key_01        val
2      1           key_02        val
3      1           key_03        val

我想要得到所有3个键和值。先使用JOIN再使用SELECT会不会慢一些?JOIN会让它变得容易得多,例如:

代码语言:javascript
复制
SELECT M1.meta_value AS key_01, M2.meta_value AS key_02, M3.meta_value AS key_04 
FROM `meta` AS M1 
     JOIN `meta` M2 ON M2.post_id = 1 AND M2.meta_key = 'key_02' 
     JOIN `meta M3 ON M3.post_id = 1 AND M3.meta_key = 'key_03' 
WHERE M1.meta_key = 'key_01'

我没有对此进行任何测试,但您应该明白这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-04 08:30:48

我认为JOINS比使用嵌套SELECTS更有效。另外,索引外键列(连接的列)也会提高性能。所以在post_id和meta_key上弹出一个索引。索引可能会损害插入性能,因此请考虑这一点。

票数 1
EN

Stack Overflow用户

发布于 2011-03-04 06:01:40

我认为mysql引擎在使用连接时比使用子选择和/或联合时有更好的机会创建一个好的查询计划。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5187071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档