首页 > 技术文章 > mysql join的优化实例

zzx11235 2017-01-18 19:50 原文

SELECT `device_threshold_alert_log`.`id`, `device_threshold_alert_log`.`init_time` AS `time` FROM `device_threshold_alert_log` INNER JOIN `device_manage` ON `device_manage`.`device_id` = `device_threshold_alert_log`.`device_id` WHERE `device_threshold_alert_log`.`gateway_id` = '101608010063' AND `device_threshold_alert_log`.`init_time` > '2017-01-16 16:32:23' AND `device_manage`.`status` = '1' AND `device_manage`.`bind_id` = 1
上面的sql很少时间,
SELECT `device_threshold_alert_log`.`id`, `device_threshold_alert_log`.`init_time` AS `time` FROM `device_threshold_alert_log` INNER JOIN `device_manage` ON `device_manage`.`device_id` = `device_threshold_alert_log`.`device_id` WHERE `device_threshold_alert_log`.`gateway_id` = '101608010063' AND `device_threshold_alert_log`.`init_time` > '2017-01-16 16:32:23' AND `device_manage`.`status` = '1'

上面的sql很多时间
这两个SQL值只是对于device_manage有没有约束条件,没有约束条件的话,会导致全表来和device_threshold_alert_log来比对。

推荐阅读