码迷,mamicode.com
首页 > 数据库 > 详细

MySql常问面试题

时间:2021-06-02 13:41:35      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:filter   car   存储   select   primary   临时表   缓冲   排序   无法   

1.mysql索引优化和查询优化
执行计划各个字段含义:
id: 表示查询中select子句或者操作表的顺序,id的值越大,代表优先级越高,越先执行
select_type :select的查询类型:SIMPLE,PRIMARY,SUBQUERY,DERIVED,UNION,UNION REUSLT
table: 表名
partitions:查询的分区信息
type:查询时的类型
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:
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
https://www.cnblogs.com/digdeep/p/4975977.html

MySql常问面试题

标签:filter   car   存储   select   primary   临时表   缓冲   排序   无法   

原文地址:https://www.cnblogs.com/zhouyu0-0/p/14820264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!