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

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

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

  • 相关阅读:
    【Prometheus学习笔记】主机监控 -node_exporter
    【Django学习笔记】-环境搭建
    【Python学习笔记】-虚拟环境virtualenv
    对象存储服务-Minio
    网络流各算法超详细带源码解析
    做题记录节选
    日常
    板刷NOI
    题解 宝石
    题解 矩阵游戏
  • 原文地址:https://www.cnblogs.com/zhaohongxiang/p/12830814.html
Copyright © 2011-2022 走看看