zoukankan      html  css  js  c++  java
  • MySql常问面试题

    索引

    1.执行计划各个字段含义:
    id: 表示查询中select子句或者操作表的顺序,id的值越大,代表优先级越高,越先执行
    select_type :select的查询类型:SIMPLE,PRIMARY,SUBQUERY,DERIVED,UNION,UNION REUSLT
    table: 表名
    partitions:查询的分区信息
    type:查询时的类型 11种
    *system:表有且仅有一条记录
    *const:查询时命中主键或者unique唯一索引,或者被连接的部分是一个const
    *eq_ref:查询时命中主键或unique key
    *ref:查询时使用非唯一索引
    *ref_or_null:使用非唯一索引并且包含null
    *index_merge:使用了索引合并优化,查询使用了两个以上的索引,查询如果出现索引合并,往往可以考虑使用联合索引
    *unique_subquery:子查询返回不重复集合
    *index_subquery:子查询返回重复值
    *range:在索引上进行范围选择
    *index:遍历索引树读取
    *all:全表扫描
    possible_keys:可能使用的索引
    key:实际使用的索引
    key_len:索引长度字节数
    ref: const,func,null,字段名
    rows:估算找到所需记录需要读取的行数
    filtered:符合条件的记录数据量的比例
    extra:6+2种
    using index 使用了覆盖索引,即从辅助索引即获得了所有信息
    using where:没有使用索引,通过where来进行条件过滤
    using temporary:使用临时表存储,一般在排序或者分组查询时用到
    using filesort:表示无法利用索引完成的排序操作
    using join buffer:连表查询时,连接条件没有使用索引,需要有一个连接缓冲区来存储结果
    impossible where: 使用了不正确的where
    no table user: 没有使用 from子句

    2.聚簇索引和非聚簇索引
    聚簇索引
    特点:1.能够快速的访问针对范围值的查询;2.它对于主键的排序查找和范围查找非常快
    非聚簇索引
    特点:不包含行记录的全部数据,索引行中包含一个书签,根据书签去innodb中查找相应行

    3.Cardinality值:索引中唯一数目的估计值 观察索引的高选择性
    cardinality值的更新:
    1.表中1/16的数据已经发生变化
    2.stat_modified_counter >2000000000
    cardinality值的获取:对表中8个叶节点进行采样,然后进行预估

    1. 联合索引
      使用联合索引的时机:需要多个查询条件
      好处:对多个键值进行了排序,可以避免排序操作

    5.index_merge

    6.优化器不适用索引的情况
    辅助索引的范围查找无法进行索引覆盖

    7.mysql索引优化和查询优化
    MRR优化 Using MRR 辅助索引->主键排序->减少页面替换
    ICP优化 Using index condition 在根据索引查找是进行where条件判断

  • 相关阅读:
    Anaconda 换国内源、删源最全集锦(转载)
    【2019】安装anaconda及环境变量的配置(安装第三方库测试)(转载)
    python 中 urlparse 模块介绍
    正则表达式之前瞻后顾
    indows下如何安装python第三方库lxml
    Ubuntu下开启SSH服务 vs:18
    Linux终端访问网页
    关于ubuntu无线网络配置
    SQL语句报错,无法绑定由多个部分组成的标识符解决
    "@P0"附近有语法错误解释及定位修复
  • 原文地址:https://www.cnblogs.com/zhouyu0-0/p/14820264.html
Copyright © 2011-2022 走看看