0
我有一个MySql 5.5查询需要6-20秒才能执行。Mysql查询很差,但DESCRIBE看起来不错
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看起来不错。还有什么可以检查,使这个查询运行更有效率?
你试过用解释吗? http://dev.mysql.com/doc/refman/5.1/en/using-explain.html – MatthewJ 2013-03-26 02:58:19
尝试使用ANSI'join'语法并在'on'子句中给出适当的条件,这将有助于提高效率 – Meherzad 2013-03-26 03:59:04
+1解释。 – 2013-03-26 04:00:33