首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化mysql子查询语句

问优化mysql子查询语句
EN

Stack Overflow用户
提问于 2017-05-23 12:34:10
回答 1查看 24关注 0票数 0

我在做一个社区共享的“令人毛骨悚然的意大利面”我的查询现在需要133 My,但是我想使查询更快。仅仅推荐一个关键字就足够了。

这是我的桌子。

列描述: 'cp_id'的意思是爬虫的id。 'session_id'有点像作家。 ' creepy '指的是令人毛骨悚然的意大利面。当“令人毛骨悚然”为0时,这并不是恐怖的故事。但是当它是1的时候,它是可怕的。

代码语言:javascript
复制
 - creepypastas: id, alias, created_at, modified_at, title, content, session_id
 - creepypasta_comments: id, cp_id, created_at, content, session_id
 - creepy_points: id, cp_id, creepy, session_id

这是我的SQL查询。

代码语言:javascript
复制
SELECT id, alias, created_at, modified_at, title, content, session_id, 
(SELECT COALESCE(SUM(case creepy when 1 then 1 else 0 end), 0) FROM 
creepy_points c WHERE creepypastas.id = c.cp_id) AS creepy_count, 
(SELECT COALESCE(SUM(case creepy when 0 then 1 else 0 end), 0) FROM 
creepy_points c WHERE creepypastas.id = c.cp_id) AS not_creepy_count, 
(SELECT COUNT(c.id) FROM creepypasta_comments c WHERE creepypastas.id = 
c.cp_id) AS comment_count 
FROM creepypastas ORDER BY created_at DESC
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-23 12:36:04

对于查询,可以在creepy_points(cp_id, creepy)上添加索引

代码语言:javascript
复制
create index idx_creepypoints_cpid_creepy on creepy_points(cpid, creepy);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44134985

复制
相关文章

相似问题

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