zoukankan      html  css  js  c++  java
  • 性能测试之数据库篇-查询(四)

      上一篇讲到了查看慢查询日志可以查看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

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

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

  • 相关阅读:
    手机的基本功能测试情景模式
    C#.net技术内幕04集合
    .net 发送电子邮件
    SQL:select case when(转)
    《 C#技术内幕》学习01IDisposable
    C#.net技术内幕03字符串
    点击确定后页面跳转
    SQL注入式攻击
    C#.NET技术内幕 02表达式
    window xp自带的功能之繁体字
  • 原文地址:https://www.cnblogs.com/zhaohongxiang/p/12830814.html
Copyright © 2011-2022 走看看