怎么查看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在参与二次可以查询,这就引发了回表问题。这那就是为么又不能不使用*的原因。
那你怎莫能解决呢?
第一别写*。
第二依靠两种索引,也就是说你据业务实际需要,将必须的字段无法形成配对组合索引。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。