2016 - 2024

感恩一路有你

怎么查看mysql使用的什么引擎 mysql:一条SQL查询语句是如何执行的?

浏览量:1995 时间:2023-05-07 21:39:22 作者:采采

mysql:一条SQL查询语句是如何执行的?

/*在单引号中间填要执行的sql语句*/

2020-07-12:什么是索引回表,如何避免?

2020-07-12:什么是索引回表,如何能尽量的避免?

必须,数据库中的索引是什么?

摘录低性能mysql中的一句话:索引(mysql也叫做键(key))是存储引擎用于迅速找到记录的一种数据结构。

这句话有两个点:存储引擎和数据结构。是需要再理解索引是在存储引擎层而非服务器层实现程序。而mysql统称多种存储引擎,这里我们只探讨一番myisam和InnoDB。两者都支持BTree(一种数据结构)索引。

假如说这个解释不了,有一个简单通俗的方法。书也有目录,快速可以找到自己不需要内容的方法,是一栏目录,索引就是数据库表数据的目录。

轮回问题:索引直接导致的回表问题。索引为什么会诱发回表?

下面我们来举例一种情况,一个表有三个字段ID,name,age,将ID系统设置成主键索引,name设成辅助索引。

然后把来看下下面的sql:

*fromtwhereid5

*acrosstwherename张三;

两个很很简单的Sql。

另一个sql不用什么说,真接实际主键索引,从树上真接是可以换取结果。

第二个sql:简单name,mysql并没法得到所有列的信息(也就是*),只有能得到主键ID,后再会依据什么ID在参与二次可以查询,这就引发了回表问题。这那就是为么又不能不使用*的原因。

那你怎莫能解决呢?

第一别写*。

第二依靠两种索引,也就是说你据业务实际需要,将必须的字段无法形成配对组合索引。

mysql 回表 数据结构 ID sql

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。