日期:2014-05-16 浏览次数:20585 次
目的
根据之前《Innodb存储引擎查询输出分析》中对Innodb查询输出的逻辑处理过程的分析和测试,对Innodb的输出有了深入的了解。然而在阅读了《MySQL技术内幕--SQL编程》中P91设计的测试,并通过跟该书作者进行沟通交流。对查询输出进行补充,弥补之前没有考虑周全的地方。
测试设计
该测试主要依据《MySQL技术内幕--SQL编程》P91页设计的测试。首先对设计进行测试;然后做相应的调整,进行进一步的测试。在此,将该设计再次描述如下。
表结构的设计如下所示:
| 
 CREATE TABLE animals( id INT PRIMARY KEY, name VARCHAR(30), UNIQUE KEY(name) ) ENGINE=INNODB;  | 
测试数据设计如下所示:
| 
 INSERT INTO animals SELECT 1, 'Tiger'; INSERT INTO animals SELECT 2, 'Dog'; INSERT INTO animals SELECT 3, 'Cat';  | 
测试的查询语句如下所示:
| 
 SELECT * FROM animals;  | 
调整测试的数据表,具体如下所示:
| 
 ALTER TABLE animals ADD COLUMN age INT;  | 
调整后的数据表进行同样的查询语句进行测试。
测试
在给出输出查询结果之前,非常有必要首先给出查询的查询计划。因为对照查询计划,可以从查询结果中得到导致该现象的原因。
查询语句explain select * from animals;查询计划如下所示:
| 
 id  | 
 select_type  | 
 table  | 
 type  | 
 possible_keys  | 
 key  | 
 key_len  | 
 ref  | 
 rows  | 
 Extra  | 
| 
 
                    
                    
                      |