mysql|全表扫描问题

全表扫描流程

InnoDB 的数据是保存在主键索引上的,所以全表扫描实际上是直接扫描表 t 的主键索引。这条查询语句由于没有其他的判断条件,所以查到的每一行都可以直接放到结果集里面,然后返回给客户端。

……

阅读全文

mysql|删除流程

数据删除

删除整个表的时候,可以使用 drop table 命令回收表空间。但是,我们遇到的更多的删除数据的场景是删除某些行,这时就遇到了这样的问题:表中的数据被删除了,但是表空间却没有被回收。

……

阅读全文

mysql|日志类型


MySQL日志类型

MySQL数据库共有四种类型的日志:Error Log、General Query Log、Slow Query Log 和 Binary Log

……

阅读全文

mysql|一致性读

视图

  1. view,它是一个用查询语句定义的虚拟表,在调用的时候执行查询语句并生成结果。

    ……

阅读全文

mysql|索引相关

索引

索引的出现是为了提高数据的查询效率,就行书本的目录一样,mysql中索引的实现是基于存储引擎的。

……

阅读全文

mysql|更新流程解析

redo log

当有一条记录需要更新的时候,InnoDB 引擎就会先把记录写到 redo log里面,并更新内存,这个时候更新就算完成了。同时,InnoDB 引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做,

……

阅读全文

mysql|查询流程解析

Mysql基本架构图

mysql结构图

MySQL 可以分为 Server 层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。

……

阅读全文