烂sql不仅直接影响sql的响应时间,更影响db的性能,导致其它正常的sql响应时间变长。如何写好sql,学会看执行计划至关重要。下面我简单讲讲mysql的执行计划,只列出了一些常见的情况,希望对大家有所帮助。
CREATE TABLE `t1` (`c1` int(11) NOT NULL DEFAULT '0',`c2` varchar(128) DEFAULT NULL,`c3` varchar(64) DEFAULT NULL,`c4` int(11) DEFAULT NULL,PRIMARY KEY (`c1`),KEY `ind_c2` (`c2`),KEY `ind_c4` (`c4`)) ENGINE=InnoDB DEFAULT CHARSET=utf8CREATE TABLE `t2` (`c1` int(11) NOT NULL DEFAULT '0',`c2` varchar(128) DEFAULT NULL,`c3` varchar(64) DEFAULT NULL,`c4` int(11) DEFAULT NULL,PRIMARY KEY (`c1`),KEY `ind_c2` (`c2`)) ENGINE=InnoDB DEFAULT CHARSET=utf8CREATE TABLE `t3` (`c1` int(11) NOT NULL DEFAULT '0',`c2` varchar(128) DEFAULT NULL,`c3` varchar(64) DEFAULT NULL,`c4` int(11) DEFAULT NULL,PRIMARY KEY (`c1`),KEY `ind_c2` (`c2`)) ENGINE=InnoDB DEFAULT CHARSET=utf8