Oracle中有explain for,mysql中也有同样的功能,那便是explain,举例如下:
mysql> explain select (case (select count(*) from stock) when 0 then 0 else max(id)+1 end) from stock; +----+-------------+-------+-------+---------------+---------+---------+------+------+------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+-------+---------------+---------+---------+------+------+------------------------------+ | 1 | PRIMARY | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Select tables optimized away | | 2 | SUBQUERY | stock | index | NULL | PRIMARY | 4 | NULL | 3696 | Using index | +----+-------------+-------+-------+---------------+---------+---------+------+------+------------------------------+ 2 rows in set (0.00 sec)
desc也是同样的功能:
mysql> desc select (case (select count(*) from stock) when 0 then 0 else max(id)+1 end) from stock; +----+-------------+-------+-------+---------------+---------+---------+------+------+------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+-------+---------------+---------+---------+------+------+------------------------------+ | 1 | PRIMARY | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Select tables optimized away | | 2 | SUBQUERY | stock | index | NULL | PRIMARY | 4 | NULL | 3696 | Using index | +----+-------------+-------+-------+---------------+---------+---------+------+------+------------------------------+ 2 rows in set (0.00 sec)
其中rows可以当cost那样看。
--2020年5月2日--