首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql查询多个内部联接。“复制到Tmp表”花费太长时间

sql查询多个内部联接。“复制到Tmp表”花费太长时间
EN

Stack Overflow用户
提问于 2017-04-10 19:58:13
回答 1查看 205关注 0票数 0

这是我的桌子“用户”:

id(auto_increment,primary_key),用户标识(唯一),键(唯一),值

第一个索引: id

第二个索引: userid + key

示例行:

1,1,“汽车”,“红色快速昂贵”

2,1,“房子”,“两层花园漂亮”

3,1,“智能手机”,“带相机和mp3”

4,2,“汽车”,“红色快速昂贵”

5,2,“房子”,“两层花园漂亮”

6,2,“智能手机”,“带相机和mp3”

7,3,“汽车”,“红色快速昂贵”

8,3,“房子”,“两层花园漂亮”

9,3,“智能手机”,“带相机和mp3”

现在我想找到所有拥有所有这些键值对的用户。

这是我的疑问:

代码语言:javascript
复制
SELECT kv1.val AS val1, kv2.val AS val2, kv3.val AS val3 
FROM user AS kv1 
INNER JOIN user AS kv2 ON kv2.userid = user.userid 
INNER JOIN user AS kv3 ON kv3.userid = user.userid 
WHERE (
      ( kv1.key = 'car' && kv1.val LIKE '%expensive%') && 
      ( kv2.key = 'house' kv2.val LIKE '%beautiful%') && 
      ( kv3.key = 'smartphone' && kv3.val LIKE '%camera%')
      )

效果很好。但我的问题是:一个包含1000万行到4.7秒的测试查询。phpmysql表示,98,91%的时间用于“复制到Tmp表”。

还有别的办法让它更快吗?

EN

回答 1

Stack Overflow用户

发布于 2017-04-10 22:45:35

我发现“按顺序”会让事情变得极端缓慢.

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

https://stackoverflow.com/questions/43331962

复制
相关文章

相似问题

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