クエリはスフィンクスを考えて生成されます。このクエリを高速化する方法を検討しています。結果を返すには、事実上永遠に時間がかかります。これを最適化する方法はありますか。
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
カウント
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::Migration にバグがあることが判明しました。重複するインデックス キーを削除したところ、クエリの応答時間はわずか 4 秒でした