首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加快MYSQL左侧包含100K+记录的联接查询

加快MYSQL左侧包含100K+记录的联接查询
EN

Stack Overflow用户
提问于 2013-08-30 04:28:52
回答 1查看 1.4K关注 0票数 0

查询是通过思考狮身人面像生成的。我正在寻找加速这个查询的方法。实际上,返回结果需要花费很长时间。我们有什么办法可以优化这个。

代码语言:javascript
复制
SELECT 
    SQL_NO_CACHE `meetings`.`id` * CAST(8 AS SIGNED) + 3 AS `id`, 
    GROUP_CONCAT(DISTINCT IFNULL(CONCAT_WS(' ', `members`.`first_name`, `members`.`last_name`), '0') SEPARATOR ' ') AS `mentor_name`, 
    `meetings`.`id` AS `sphinx_internal_id`, 
    0 AS `sphinx_deleted`, 
    984144037 AS `class_crc`, 
    `meetings`.`program_id` AS `program_id`, 
    UNIX_TIMESTAMP(`meetings`.`start_time`) AS `start_time`, 
    `meetings`.`active` AS `active`, 
    `meetings`.`calendar_time_available` AS `calendar_time_available`, 
    `meetings`.`group_id` AS `group_id` 
FROM `meetings` 
LEFT OUTER JOIN `member_meetings` 
    ON `member_meetings`.`meeting_id` = `meetings`.`id` 
LEFT OUTER JOIN `members` 
    ON `members`.`id` = `member_meetings`.`member_id` 
WHERE 
    `meetings`.`delta` = 0 
GROUP BY 
    `meetings`.`id` 
ORDER BY NULL

计数

代码语言:javascript
复制
select count(*) from meetings : 194685
select count(*) from member_meetings : 522309
select count(*) from members : 112016

编辑

我已经解决了这个问题,我正确地配置了所有适当的索引。

为member_meetings.meeting_id和member_meetings.member_id添加了一个重复的索引键,结果发现在使用add_index方法时rails ActiveRecord::迁移中存在一个错误。我现在删除了重复索引键,查询响应时间仅为4s。

EN

回答 1

Stack Overflow用户

发布于 2013-08-30 04:36:41

确保您有索引。

代码语言:javascript
复制
`member_meetings`.`meeting_id`
`meetings`.`id` 
`members`.`id`
`member_meetings`.`member_id` 
`meetings`.`delta`
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18524930

复制
相关文章

相似问题

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