执行器和 InnoDB 引擎在执行这个简单的 update 语句时的内部流程。 1、执行器先找引擎取 ID=2 这一行。ID 是主键,引擎直接用树搜索找到这一行。如果 ID=2 这一行所在的数据页本来就在内存中,就直接返回给执行器;否则,需要先从磁盘读入内存,然后再返回。 2、执行器拿到引擎给的行数 ...
分类:
数据库 时间:
2020-02-03 22:51:52
阅读次数:
161
选择普通索引还是唯一索引? 对于查询过程来说: a、普通索引,查到满足条件的第一个记录后,继续查找下一个记录,知道第一个不满足条件的记录 b、唯一索引,由于索引唯一性,查到第一个满足条件的记录后,停止检索 但是,两者的性能差距微乎其微。因为InnoDB根据数据页来读写的。 对于更新过程来说: 概念: ...
分类:
其他好文 时间:
2020-01-30 21:08:08
阅读次数:
61
头元素信息: <title>:文档标题,只有一个 <base>:默认链接 <link>:文档与外部资源关系,常用于链接样式表CSS <style>:样式 <meta>:元数据,页面描述,关键字,文档作者等 <script>:客户端脚本,如JavaScript 获取网页:requests包 http请 ...
分类:
编程语言 时间:
2020-01-29 23:18:39
阅读次数:
109
基本流程和查询SQL也是一致的,也就是说,它也要经过解析器、优化器的处理,最后交给执行器。 区别就在于拿到符合条件的数据之后的操作。 1.缓冲池Buffer Pool ~~~ 首先,InnnoDB 的数据都是放在磁盘上的,InnoDB 操作数据有一个最小的逻辑单位,叫做页(索引页和数据页)。我们对于 ...
分类:
数据库 时间:
2020-01-16 19:04:48
阅读次数:
80
准备测试环境: MySQL 5.7.28 社区版 CentOS release 6.10 MySQL Undo参数配置: innodb_undo_tablespaces = 1 innodb_default_row_format = dynamic 准备测试数据: ## 创建测试表 CREATE T ...
分类:
数据库 时间:
2020-01-13 20:11:27
阅读次数:
104
继续上一个测试 测试2:更新测试 测试脚本: ## 更新C1列并导致数据变化 UPDATE TB001 SET C1='BBBB01' WHERE ID='AA0001'; ## 更新C1列但不导致数据变化 UPDATE TB001 SET C1='BB0002' WHERE ID='AA0002' ...
分类:
数据库 时间:
2020-01-12 20:18:49
阅读次数:
96
测试环境: MySQL 5.7.28 社区版 CentOS release 6.10 MySQL Undo参数配置: innodb_undo_tablespaces = 1innodb_default_row_format = dynamic 测试脚本: ## 创建测试表 CREATE TABLE ...
分类:
数据库 时间:
2020-01-11 00:18:16
阅读次数:
143
Mysql数据库的索引和视图详解索引的概念数据库的索引与书籍中的目录类似在一本书中,无需阅读整本书,利用目录就可以快速查找所需信息书中的目录是一个词语列表,其中注明了包含各个词的页码数据库索引在数据库中,索引数据库程序无需对整个表进行扫描,就可以在其中找到所需数据数据库中的索引是某个表中一列或若干列的集合,以及物理标识这些值的数据页的逻辑指针清单索引的作用设置了合适的索引之后,数据库利用葛总快速的
分类:
数据库 时间:
2020-01-10 18:52:14
阅读次数:
94
说起mysql查询效率问题,就无法绕开索引问题,而innodb索引是mysql存储引擎中的重中之重,innodb索引包括“主键索引(聚集索引)”也就是实际数据和主键数据存储在一起的索引。innodb除了主键索引以外就是二级索引,二级索引叶子结点的数据区存储的是主键,mysql每个数据页面有16k大小 ...
分类:
数据库 时间:
2020-01-08 10:20:42
阅读次数:
112
文章部分总结来自课程,非原创 MySQL 组织架构 下面这张图就可以解释关于 MySQL 底层的组织架构了。 上面的图可以直观地展示两个重要的东西 : 一条 SQL 的执行流程 MySQL 的底层架构 大体来说,MySQL可以分为Server层和存储引擎层两部分。 Server 层 Server层包 ...
分类:
数据库 时间:
2020-01-06 00:36:37
阅读次数:
108