1

我想从以下查询中显示一些有限的记录,但是我应该如何减少使用连接在查询中执行的 scan 的总数并加快执行速度?

询问::

select ml.*,m.title as medianame,mt.name as media_type,d.device_name as devicename,
SUBTIME(ml.end_time,ml.start_time) as playback_duration,d.client_id
from device_media_log ml left join media m on m.media_id = ml.media_id left join device d on d.device_id = ml.device_id
left join media_type mt on m.media_type_id = mt.media_type_id
order by ml.play_date desc,ml.start_time desc,ml.end_time desc;

所有表都包含必需的索引。

4

1 回答 1

0

我建议的最好的事情是尽可能使用 where 子句。

选择 ml.*,m.title 作为 medianame,mt.name 作为 media_type,d.device_name 作为 devicename,SUBTIME(ml.end_time,ml.start_time) 作为playback_duration,d.client_id from device_media_log ml left join media m on m.media_id = ml.media_id 在 d.device_id 上左连接设备 d = ml.device_id 在 m.media_type_id 上左连接 media_type mt = mt.media_type_id WHERE SOMETHING=SOMETHING AND SOMETHING=SOMETHING order by ml.play_date desc,ml.start_time desc,ml。结束时间描述;

于 2013-02-08T10:50:06.373 回答