首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【mysql系列】细谈explain执行计划之“谜”

因为只匹配数据,所以如果将主键置于where列表,mysql能将该查询转换为一个常量 3.eq_ref:唯一性索引扫描,对于每个索引只有一条记录与之匹配。...ref: 显示索引哪一列被使用了,如果有可能是一个常数,哪些列或常量被用于查询索引列上值 rows: 根据统计信息以及索引选用情况,大致估算出找到所需记录所需要读取行数 filtered: 指返回结果占需要读到...const 表示通过索引一就找到了,const用于比较primary key 或者 unique索引(查询类型与索引类型有关)。因为只需匹配数据,所有很快。...eq_ref 唯一性索引扫描,对于每个索引只有一条记录与之匹配。常见于主键或 唯一索引扫描。...注意:class,上面创建时,建立class_name索引;同样查询用于teacher,便会全扫描。 all MySQL将遍历全以找到匹配

87810

MySql知识体系总结(2021版)请收藏!!

const用于用常数值比较PRIMARY KEY或UNIQUE索引所有部分时。 eq_ref:对于每个来自于前面的组合,读取一。这可能是最好联接类型,除了const类型。...对前面的每个组合,MySQL检查是否可以使用range或index_merge访问方法来索取。 Using filesort:MySQL需要额外传递,以找出如何按排序顺序检索。...通过根据联接类型浏览所有并为所有匹配WHERE子句保存排序关键字和指针来完成排序。然后关键字被排序,并按排序顺序检索。...Using index:只使用索引树信息而不需要进一步搜索读取实际检索列信息。当查询只使用作为单一索引一部分列时,可以使用该策略。...Using where:WHERE子句用于限制哪一个匹配下一个或发送到客户。

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

Java面试之数据库面试题

游标:是对查询出来结果集作为一个单元来有效处理。游标可以定在该单元特定结果集的当前行检索或多行。可以对结果集当前行做修改。...2 )用户通过简单查询可以复杂查询得到结果。 3 )维护数据独立性,试图可从多个检索数据。 4 )对于相同数据可产生不同视图。...12、主键和外区别? 主键在本是唯一、不可唯空,外可以重复可以唯空;外和另一张主键关联,不能创建对应不存在。 13、在数据库查询语句速度很慢,如何优化?...第一范式:列不可再分 第二范式:可以唯一区分,主键约束 第三范式:非主属性不能依赖与其他非主属性 外约束 且三大范式是一级一级依赖第二范式建立在第一范式上,第三范式建立第一第二范式上 15...4)分页查询时候时候,mysql用limit oracle用rownum mysql> SELECT * FROM table LIMIT 5,10; // 检索记录 6-15 //为了检索某一个偏移量到记录集结束所有的记录

1.5K20

数据库经典面试题,都给你收集好了!!!

游标:是对查询出来结果集作为一个单元来有效处理。游标可以定在该单元特定结果集的当前行检索或多行。可以对结果集当前行做修改。...2 )用户通过简单查询可以复杂查询得到结果。 3 )维护数据独立性,试图可从多个检索数据。 4 )对于相同数据可产生不同视图。...12、主键和外区别? 主键在本是唯一、不可唯空,外可以重复可以唯空;外和另一张主键关联,不能创建对应不存在。 13、在数据库查询语句速度很慢,如何优化?...第一范式:列不可再分 第二范式:可以唯一区分,主键约束 第三范式:非主属性不能依赖与其他非主属性 外约束 且三大范式是一级一级依赖第二范式建立在第一范式上,第三范式建立第一第二范式上 15...4)分页查询时候时候,mysql用limit oracle用rownum mysql> SELECT * FROM table LIMIT 5,10; // 检索记录 6-15 //为了检索某一个偏移量到记录集结束所有的记录

1.5K30

Java面试之数据库面试题

游标:是对查询出来结果集作为一个单元来有效处理。游标可以定在该单元特定结果集的当前行检索或多行。可以对结果集当前行做修改。...2 )用户通过简单查询可以复杂查询得到结果。 3 )维护数据独立性,试图可从多个检索数据。 4 )对于相同数据可产生不同视图。...12、主键和外区别? 主键在本是唯一、不可唯空,外可以重复可以唯空;外和另一张主键关联,不能创建对应不存在。 13、在数据库查询语句速度很慢,如何优化?...第一范式:列不可再分 第二范式:可以唯一区分,主键约束 第三范式:非主属性不能依赖与其他非主属性 外约束 且三大范式是一级一级依赖第二范式建立在第一范式上,第三范式建立第一第二范式上 15...4)分页查询时候时候,mysql用limit oracle用rownum mysql> SELECT * FROM table LIMIT 5,10; // 检索记录 6-15 //为了检索某一个偏移量到记录集结束所有的记录

1.5K41

数据库常见面试题大全

游标:是对查询出来结果集作为一个单元来有效处理。游标可以定在该单元特定结果集的当前行检索或多行。可以对结果集当前行做修改。...2 )用户通过简单查询可以复杂查询得到结果。 3 )维护数据独立性,试图可从多个检索数据。 4 )对于相同数据可产生不同视图。...12、主键和外区别? 主键在本是唯一、不可唯空,外可以重复可以唯空;外和另一张主键关联,不能创建对应不存在。 13、在数据库查询语句速度很慢,如何优化?...第一范式:列不可再分 第二范式:可以唯一区分,主键约束 第三范式:非主属性不能依赖与其他非主属性 外约束 且三大范式是一级一级依赖第二范式建立在第一范式上,第三范式建立第一第二范式上 15...4)分页查询时候时候,mysql用limit oracle用rownum mysql> SELECT * FROM table LIMIT 5,10; // 检索记录 6-15 //为了检索某一个偏移量到记录集结束所有的记录

1.4K40

2020年MySQL数据库面试题总结(50道题含答案解析)

6、主键和候选有什么区别? 表格每一都由主键唯一标识,一个只有一个主键主键也是候选。按照惯例,候选可以被指定为主键,并且可以用于任何外引用。...主键,是一种特殊唯一索引,在一张只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字 PRIMARY KEY 来创建。...快速访问数据特定信息,提高检索速度 创建唯一性索引,保证数据库每一数据唯一性。...内连接  则是只有条件交叉连接,根据某个条件筛选出符合条件记录,不符合条件记录不会出现在结果集中,即内连接只连接匹配。...游标:是对查询出来结果集作为一个单元来有效处理。游标可以定在该单元特定结果集的当前行检索或多行。可以对结果集当前行做修改。

3.9K20

2020最新版MySQL数据库面试题(一)

第二范式:在第一范式基础上,非主键列完全依赖于主键,而不能是依赖于主键一部分。 第三范式:在第二范式基础上,非主键列只依赖于主键,不依赖于其他非主键。...上图中,根据id查询记录,因为id字段仅建立了主键索引,因此此SQL执行可选索引只有主键索引,如果有多个,最终会选一个较优作为检索依据。...使用索引查询不一定能提高查询性能,索引范围查询(INDEX RANGE SCAN)适用于两种情况: 基于一个范围检索,一般查询返回结果集小于记录数30% 基于非唯一性索引检索 百万级别或以上数据如何删除...对于每一查询都是根节点出发,查找到叶子节点方可以获得所查键值,然后根据查询判断是否需要回查询数据。...而在B+树,顺序检索比较明显,随机检索时,任何关键字查找都必须走一条根节点到叶节点路,所有关键字查找路径长度相同,导致每一个关键字查询效率相当。

1.1K60

MySQL数据库知识点

索引使用场景(重点) where 上图中,根据id查询记录,因为id字段仅建立了主键索引,因此此SQL执行可选索引只有主键索引,如果有多个,最终会选一个较优作为检索依据。...对于每一查询都是根节点出发,查找到叶子节点方可以获得所查键值,然后根据查询判断是否需要回查询数据。...外:在一个存在另一个主键称此SQL 约束有哪几种? SQL 约束有哪几种? NOT NULL: 用于控制字段内容一定不能为空(NULL)。...FOREIGN KEY: 用于预防破坏之间连接动作,也能防止非法数据插入外列,因为它必须是它指向那个值之一。 CHECK: 用于控制字段值范围。...初始记录偏移量是 0(而不是 1) mysql> SELECT * FROM table LIMIT 5,10; // 检索记录 6-15 为了检索某一个偏移量到记录集结束所有的记录,可以指定第二个参数为

74120

MySQL 给你问懵了?50 道 MySQL 高频面试题详解来了

6、主键和候选有什么区别? 表格每一都由主键唯一标识,一个只有一个主键主键也是候选。按照惯例,候选可以被指定为主键,并且可以用于任何外引用。...主键,是一种特殊唯一索引,在一张只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字 PRIMARY KEY 来创建。...快速访问数据特定信息,提高检索速度 创建唯一性索引,保证数据库每一数据唯一性。...内连接 则是只有条件交叉连接,根据某个条件筛选出符合条件记录,不符合条件记录不会出现在结果集中,即内连接只连接匹配。...游标:是对查询出来结果集作为一个单元来有效处理。游标可以定在该单元特定结果集的当前行检索或多行。可以对结果集当前行做修改。

2.6K11

MySQL经典52题

6.主键和候选有什么区别?表格每一都由主键唯一标识,一个只有一个主键主键也是候选。按照惯例,候选可以被指定为主键,并且可以用于任何外引用。7.myisamchk是用来做什么?...内连接 则是只有条件交叉连接,根据某个条件筛选出符合条件记录,不符合条件记录不会出现在结果集中,即内连接只连接匹配。...游标:是对查询出来结果集作为一个单元来有效处理。游标可以定在该单元特定结果集的当前行检索或多行。可以对结果集当前行做修改。...1、定义上却分主键:唯一标识一条记录,不能有重复,不允许为空外是另一主键, 外可以有重复, 可以是空值索引:该字段没有重复值,但可以有一个空值2、作用上区分主键:用来保证数据完整性外...:用来和其他建立联系用索引:是提高查询排序速度3、个数上区分主键主键只能有一个外:一个可以有多个外索引:一个可以有多个唯一索引52.SQL语句优化方法Where子句中:where之间连接必须写在其他

7510

一文搞懂MySQL索引(清晰明了)

这些列取值很少,例如人事性别列,在查询结果,结果集数据占了数据很大比例,即需要在搜索数据比例很大。增加索引,并不能明显加快检索速度。...这种存储方式是依靠B+树来实现根据主键构造一棵B+树且B+树叶子节点存放都是记录数据时,方可称该主键索引为聚簇索引。...因此,对于InnoDB,我们一般定义主键为不可更新。 二级索引访问需要两索引查找,第一找到主键值,第二根据主键值找到行数据。...InnoDB和MyISAM索引检索过程 对于InnoDB和MyISAM而言,主键索引是根据主关键字来构建B+树存储结构,辅助索引则是根据辅助来构造B+树存储结构,彼此索引树都是相互独立...InnoDB辅助索引访问需要两索引查找,第一辅助索引树找到主键值,第二根据主键值到主键索引树中找到对应行数据。

1.2K20

SQL必知必会》万字浓缩精华

如果把想象成一个网格,那么网格垂直列则为表列,水平则为表示是一个记录。有时候也称之为记录。 主键 每一都应该都有一列或者几列来唯一标识自己。主键用来表示一个特定。...如果列可以作为主键,则它必须满足: 任意两行都不具有相同主键值(主键列不允许NULL值) 每行都必须有一个主键主键值不允许修改或者更新 主键值不能重用(如果某行删除,则它主键不能赋给以后记录...语句检索一个或者多个数据列。...WHERE子句来指定联结条件,则返回是笛卡尔积,返回出来数就是第一个乘以第二。...二十一、使用游标 本章节中讲解是什么是游标,以及如何使用游标。 什么是游标 SQL检索操作返回一组称为结果集,这组返回行都是与SQL语句相匹配(零或者多行)。

7.4K31

SQL必知必会总结

主键 每一都应该都有一列或者几列来唯一标识自己。主键用来表示一个特定主键:一列或者几列,其值能够标识每行。...如果列可以作为主键,则它必须满足: 任意两行都不具有相同主键值(主键列不允许NULL值) 每行都必须有一个主键主键值不允许修改或者更新 主键值不能重用(如果某行删除,则它主键不能赋给以后记录...语句检索一个或者多个数据列。...WHERE子句来指定联结条件,则返回是笛卡尔积,返回出来数就是第一个乘以第二。...二十一、使用游标 本章节中讲解是什么是游标,以及如何使用游标。 什么是游标 SQL检索操作返回一组称为结果集,这组返回行都是与SQL语句相匹配(零或者多行)。

9.1K30

MySQL优化总结

clo = 1 那么,使用这条sql查询,可直接(clo1,clo2)索引树获取数据,无需回查询 因此我们需要尽可能在select后只写必要查询字段,以增加索引覆盖几率。...因为仅有一,在这行列值可被优化器剩余部分认为是常数。const很快,因为它们只读取一!eq_ref:对于每个来自于前面的组合,读取一。...Using filesort:MySQL需要额外传递,以找出如何按排序顺序检索。Using index:只使用索引树信息而不需要进一步搜索读取实际检索列信息。...因为仅有一,在这行列值可被优化器剩余部分认为是常数。const很快,因为它们只读取一! eq_ref:对于每个来自于前面的组合,读取一。...Using filesort:MySQL需要额外传递,以找出如何按排序顺序检索。 Using index:只使用索引树信息而不需要进一步搜索读取实际检索列信息。

1.7K40

精选MySQL面试题(附刷题小程序)

: 在一个存在另一个主键称此。 1.2 LIKE 和 REGEXP 操作有什么区别? LIKE 和 REGEXP 运算符用于表示 ^ 和%。...where根据id查询记录,因为id字段仅建立了主键索引,因此此SQL执行可选索引只有主键索引,如果有多个,最终会选一个较优作为检索依据。...consts 单中最多只有一个匹配主键或者唯一索引),在优化阶段即可读取到数据。 ref 指的是使用普通索引(normal index)。 range 对索引进行范围检索。...初始记录偏移量是 0(而不是 1) -- 检索记录 6-15 SELECT * FROM table LIMIT 5,10; 为了检索某一个偏移量到记录集结束所有的记录,可以指定第二个参数为...在第一查询结果集中找出关联数据id,根据这些id发起第二请求得到关联数据。

70430

【21】进大厂必须掌握面试题-65个SQL面试

主键 是一列(或列集合)或一组列唯一标识每一。 唯一标识 不允许为空值 示例-在学生,Stu_ID是主键。 Q8。 什么是约束?...SQL聚集索引和非聚集索引之间区别是: 聚集索引用于轻松地数据库检索数据,并且速度更快,而非聚集索引读取数据则相对较慢。...列出不同类型联接? 有多种类型联接用于检索之间数据。有四种类型联接,即: 内部联接:MySQL内部联接是最常见联接类型。它用于满足联接条件多个返回所有。...左连接: MySQL左连接用于返回左所有,但仅返回右满足连接条件匹配。 右连接: MySQL右连接用于返回右所有,但仅返回满足连接条件匹配。...第一范式(1NF) –行内没有重复第二范式(2NF) –每个非(支持)列值都取决于整个主键。 第三范式(3NF) –仅取决于主键,而没有其他非(支持)列值。 Q23。

6.4K22

MySQL入门必须知道知识点!

image.png 如果是等值查询,那么哈希索引明显有绝对优势,因为只需要经过一算法即可找到相应键值;前提是键值都是唯一,如果键值不是唯一,就需要先找到该所在位置,然后再根据链表往后扫描,直到找到相应数据...4.type:优化sql重要字段,也是我们判断sql性能和优化程度重要指标,他取值类型范围: const:通过索引一命中,匹配数据; system:只有一数据,相当于系统...; eq_ref:唯一性索引扫描,对于每个索引只有一条数据与之匹配; ref:非唯一性索引扫描,返回匹配某个值所有; range:只检查给定范围,使用一个索引来选择...) 不损失精确性情况下,长度越短越好 8、ref:列与索引比较,表示上述连接匹配条件,即哪些列或常量被用于查找索引列上值 9、rows:估算出结果集行数,表示MySQL根据统计信息及索引选用情况...主键:是一种特殊唯一索引,在一张只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字PRIMARY KEY来创建。

52100

MySQL高级--性能优化之Explain分析SQL

UNION RESULT: UNION获取结果SELECT。 1.4 当前数据名 table: 查询当前这一数据是关于哪个。...const: 通过索引一就能找到了,const用于比较 primary key 和 unique 索引。因为只匹配数据,所以很快。...如将主键置于where列表,MySQL就能将该查询转换为一个常量。 eq_ref: 唯一性索引扫描,对于每个索引只有一条记录与之匹配。 常见于主键或唯一索引扫描。...key_len显示值为索引字段最大可能长度, 并非实际使用长度,即key_len是根据定义计算而得,不是通过检索出来。...覆盖索引(Covering Index) : 就是 select 查询索引中就可以获取到,而不必去读取原始数据,MySQL可以利用索引返回 select 列表字段,而不必根据索引再次读取数据文件

88530

2022 最新 MySQL 面试题

6、主键和候选有什么区别? 表格每一都由主键唯一标识 ,一个只有一个主键主键也是候选。 按照惯例, 候选可以被指定为主键, 并且可以用于任何外 引用。...快速访问数据特定信息, 提高检索速度 创建唯一性索引, 保证数据库每一数据唯一性。...个所有记录和另一个所有记录一一匹配。...内连接 则是只有条件交叉连接 ,根据某个条件筛选出符合条件记录 ,不符合 条件记录不会出现在结果集中, 即内连接只连接匹配。...游标: 是对查询出来结果集作为一个单元来有效处理。 游标可以定在该单元 特定结果集的当前行检索或多行。 可以对结果集当前行做修改。

8410
领券