mysql|全表扫描问题
全表扫描流程
InnoDB 的数据是保存在主键索引上的,所以全表扫描实际上是直接扫描表 t 的主键索引。这条查询语句由于没有其他的判断条件,所以查到的每一行都可以直接放到结果集里面,然后返回给客户端。
……记录所学所思所想,专注于Go语言、软件架构
InnoDB 的数据是保存在主键索引上的,所以全表扫描实际上是直接扫描表 t 的主键索引。这条查询语句由于没有其他的判断条件,所以查到的每一行都可以直接放到结果集里面,然后返回给客户端。
……删除整个表的时候,可以使用 drop table 命令回收表空间。但是,我们遇到的更多的删除数据的场景是删除某些行,这时就遇到了这样的问题:表中的数据被删除了,但是表空间却没有被回收。
……在不同的 MySQL 引擎中,count(*)
有不同的实现方式。
MySQL数据库共有四种类型的日志:Error Log、General Query Log、Slow Query Log 和 Binary Log
……view,它是一个用查询语句定义的虚拟表,在调用的时候执行查询语句并生成结果。
……全局锁就是对整个数据库实例加锁。
……索引的出现是为了提高数据的查询效率,就行书本的目录一样,mysql中索引的实现是基于存储引擎的。
……当有一条记录需要更新的时候,InnoDB 引擎就会先把记录写到 redo log里面,并更新内存,这个时候更新就算完成了。同时,InnoDB 引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做,
……
MySQL 可以分为 Server 层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。
……