性能测试之数据库篇-查询(四)

  上一篇讲到了查看慢查询日志可以查看sql语句,下边讲一下,如何优化查询,那就涉及到索引,索引就像书籍的目录,查询数据库不能只是简单的进行全表扫描,要根据索引找到对应的章节,对应的页面,对应的地址空间,然后返回数据,mysql 数据库的存储引擎是这么解释执行sql语句的,底层innoDB 存储引擎是这么执行的,如果建表的时候加了索引,根据索引查找会提高效率,原则”尽量使用主键查询“ 这个就涉及到数据库底层的存储结构,索引以B+ tree结构存储,索引越小 占用的存储空间越小 例子  建表语句


mysql> create table T (
ID int primary key,
k int NOT NULL DEFAULT 0,
s varchar(16) NOT NULL DEFAULT '',
index k(k))
engine=InnoDB;

insert into T values(100,1, 'aa'),(200,2,'bb'),(300,3,'cc'),(500,5,'ee'),(600,6,'ff'),(700,7,'gg');

查询语句

select * from T where k between 3 and 5 和  

select ID from T where k between 3 and 5

以上两个比较,第一个语句涉及到两次回表,即查询开销增大 第二个不需要回表,可以以第二个为主

作为一个测试人员,先学到这吧,比较优化还是开发人员的工作,测试能分析定位问题就基本提供了方向

原文地址:https://www.cnblogs.com/zhaohongxiang/p/12830814.html