Python自动化训练营2期——数据库进阶-课程贴

课后调查表

MySQL 中 SQL 执行原理

客户端–server(连接器–查询缓存–分析器–优化器–执行器)–存储引擎

索引

索引概念

  • 数据结构
  • 提高查询效率

索引分类

  • 单列索引:普通索引、唯一索引、主键索引
  • 组合索引
  • 全文索引

索引适合的场合

  • 经常查询
  • 经常排序

索引不适合场景

  • 表记录太少
  • 经常增删改的表
  • 数据重复并且分布很平均

explain

  • 分析SQL语句的执行计划
  • 在SQL查询非常慢的场景下使用
  • explain + SQL

事务

  • 让操作要么全部执行,要么全部不执行
  • 特点:原子性、一致性、隔离性、持久性
  • 操作:begin rollback commit

存储过程

-- 如果存储过程存在,先删除
drop procedure if exists test;
-- 暂时修改命令结束的符号
delimiter $$

-- 创建存储过程
create procedure test()
begin
    declare i int;
    declare s2 varchar(45);
    set i=10;
    set s2='hello';
    while(i<=20)do
        insert into hogwarts_user values(i, s2, i);
        set i=i+1;
    end while;
end $$

-- 把命令结束符号改回;
delimiter ;
-- 调用存储过程
call test();

select * from hogwarts_demo.hogwarts_user;

测试方法

  1. 开发提供存储过程
  2. 构造数据表
  3. 入参设置等价类(命中,未命中)
  4. 校验出参
  5. 使用 call 调用存储过程

日志

  • slow log 慢查询日志
    查看日志开关:show variables like ‘%query%’;
    打开日志开关:set global slow_query_log=‘ON’;
    设置阈值:set long_query_time=0.01;
    执行SQL语句
    查看日志内容

表中查看日志

修改日志存放方式:set global log_output = ‘table’;
查看表中内容:select * from mysql.slow_log;

数据库面试

  • 复杂查询

推荐书目

  • SQL必知必会(第4版)
  • 高性能MySQL(最新版)
  • MySQL官方文档

课堂 ppt

https://pdf.ceshiren.com/xly2/数据库进阶

关闭