表格
CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` enum('M','F') NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`),
KEY `fnln` (`first_name`,`last_name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
sql
explain select * from employees where first_name='Anneke' and last_name='Porenta';
5.6结果5.6 result
5.7结果5.7 result
首先,不仅可以预期到,较新版本的数据库产品可能会为查询计划创建不同的输出,这也是您想要的:您希望显示改进。
现在:查询计划的要旨是100%相同:5.6中存在的所有列在5.7中都相同显示-因此查询计划本身未更改。
更改之处在于,较新的版本显示了两列-由于在5.7中新增了对不同分区的并行查询的支持,因此partitions column
很容易解释。
[filtered
]列源自查询计划程序中的优化:显然,条件的选择性对于查询计划非常重要,显然在查询运行之前尚不知道确切的选择性,但是较新的查询计划程序会通知您,它用。这是一件好事。