0

我有一个 MySql 5.5 查询,需要 6-20 秒才能执行。

SELECT TE.memb_priority, E.event_id, IFNULL(TE.user_show_as, E.show_time_as), 
       TE.email_id, TE.memb_color, TE.memb_inv_id, TE.invite_type, TE.is_confirmed, TE.invite_alias, IFNULL(TE.reminder, E.reminder_mins),
       COALESCE(TE.delete_dt, IORG.rm_from_invite_dt), 
       GREATEST(E.last_update_time, IFNULL(TE.greatest_time, 0)), IORG.required_attendee, 0
  FROM INVITED_ORG IORG, PERM_USER_EVENT_MEMB TE, USER_EVENT E
 WHERE TE.memb_inv_id       = IORG.org_id_FK
   AND IORG.event_id_FK     = E.event_id     
   AND ((E.event_owner      = IORG.org_id_FK
   AND   E.exclude_owner    = 0)
    OR E.event_owner       != IORG.org_id_FK)  
   AND (E.gmt_end_date > '2013-02-17 00:00:00.0'
    OR (E.recurrence IS NOT NULL
   AND  '2013-02-17 00:00:00.0' <= E.recurrence_end_dt)); 

描述显示:

id,select_type,table,type,possible_keys,key,key_len,ref,rows,Extra
-------------------------------------------------------------------
1,SIMPLE,TE,ALL,idx_id,NULL,NULL,NULL,61,
1,SIMPLE,IORG,ref,"PRIMARY,idx_oid,idx_eid",idx_oid,4,GLOCAL.TE.memb_inv_id,343,
1,SIMPLE,E,eq_ref,PRIMARY,PRIMARY,252,GLOCAL.IORG.event_id_FK,1,"Using where"

如您所见,DESCRIBE 看起来不错。还有什么可以检查以使此查询更有效地运行?

4

1 回答 1

0

如果结果集不适合innodb_buffer_pool_size查询,则由于 I/O 分页而需要非常长的时间。

于 2013-03-26T03:59:01.060 回答