• python学习第41天


    # 索引
    # 认识mysql中的key
    # index key 普通索引,能够加速查询,辅助索引
    # unique key 唯一 + 索引,辅助索引
    # primary key 唯一 + 非空 + 聚集索引
    # 主键作为条件的查询如果能够让索引生效那么效率总是更高
    # foreign key 本身没有索引的,但是它关联的外表中的字段是unique索引
    # primary key 和unique 标识的字段不需要再添加索引
    # 直接就可以利用索引加速查询
    # 能用unique的时候尽量不用index
    # unique除了是索引之外还能做唯一约束,如果做了唯一约束
    # b+树就更健康
    # 正确的使用索引
    # 创建索引 creeat index 索引名 on 表名(字段名)
    # 删除索引 drop index 索引名 on 表名

    # 1.条件一定是建立了索引的字段,如果条件使用的字段根本就没有创建索引,那么索引不生效
    # 2.如果条件是一个范围,随着范围的值逐渐增大,那么索引能发挥的作用也越小
    # 3.如果使用like进行模糊查询,那么使用a%的形式能命中索引,%a形式不能命中索引
    # 4.尽量选择区分度高的字段作为索引列
    # 5.索引列不能在条件中参与计算,也不能使用函数
    # 6.在多个条件以and相连的时候,会优点选择区分度高的索引列来进行查询
    # 在多个条件以or相连的时候,就是从左到右依次判断
    # 7.制作联合索引
    # 1.最左前缀原则 a,b,c,d 条件是a的能命中索引,条件是a,b能命中索引,a,b,c能命中,a,c.... 只要没有a就不能命中索引
    # 如果在联合查询中,总是涉及到同一个字段,那么就在建立联合索引的时候将这个字段放在最左侧
    # 2.联合索引 如果按照定义顺序,从左到右遇到的第一个在条件中以范围为条件的字段,索引失效
    # 尽量将带着范围查询的字段,定义在联合索引的最后面
    # drop index
    # 如果我们查询的条件总是多个列合在一起查,那么就建立联合索引
    # create index ind_mix on s1(id,email)

    # select * from s1 where id = 1000000 命中索引
    # select * from s1 where email = 'eva1000000@oldboy' 未命中索引
    # 但凡是创建了联合索引,那么在查询的时候,再创建顺序中从左到右的第一列必须出现在条件中
    # select count(*) from s1 where id = 1000000 and email = 'eva10%'; 命中索引

    # select count(*) from s1 where id = 1000000 and email like 'eva10%'; 可以命中索引
    # 范围 :
    # select * from s1 where id >3000 and email = 'eva300000@oldboy'; 不能命中索引
    # 8.条件中涉及的字段的值必须和定义表中字段的数据类型一致,否则不能命中索引

    # 关于索引的两个名词
    # 覆盖索引 查一个数据不需要回表
    # select name from 表 where age = 20 不是覆盖索引
    # select age from 表 where age =20 是覆盖索引
    # select count(age) from 表 where age =20 是覆盖索引
    # 合并索引
    # 当我们为单独的一列创建索引的时候
    # 如果条件是这一列,且使用正确就可以命中索引
    # 当我们为两列分别创建单独的索引的时候
    # 如果这两列都是条件,那么可能只能命中期中一个条件
    # 如果这两列都是条件,那么可能会命中两个索引 - 合并索引
    # 我们为多列直接创建联合所以
    # 条件命中联合索引

    # 执行计划
    # 看看mysql准备怎么执行这条语句 可以看到是否命中索引,计划能命中哪些,实际命中了哪些,执行的顺序,是否发生了索引合并,覆盖索引
    # explain select * from s1;

    # 数据库部分的拾遗
    # pymysql
    # 数据库备份和还原
    # 使用事务和锁的方式来保证数据安全
  • 相关阅读:
    关于jpa example使用
    文件下载
    文件夹下的文件根据最后修改时间排序
    前端验证图片是否加载成功
    LocalDate获取当天,本月第一天,本月最后一天,今年第一天,今年最后一天
    将word文档合成一张图片输出
    easyui前端分页与layui前端分页
    Java线程池源码流程图
    hexo发布到gitee和github上及主题优化
    【JVM之美】垃圾收集算法
  • 原文地址:https://www.cnblogs.com/heimajia/p/10792588.html
Copyright © 2020-2023  润新知