个人简介

Echo Blog


江湖无名 安心练剑
  • mysql(6)Index 索引常见问题
    什么是索引? 当你想查阅书中某个知识的内容,你会选择一页一页的找呢? 还是在书的目录去找呢? 傻瓜都知道时间是宝贵的,当然是选择在书的目录去找,找到后再翻到对应的页。 书中的目录,就是充当索引的角色,方便我们快速查找书中的内容,所以索引是以空间换时间的设计思想。 那换到数据库中,索引的定义就是帮助存储引擎快速获取数据的一种数据结构,形象的说就是索引是数据的目录。 所谓的存储引擎,...
    2020-10-17 08:15:55 | Database
  • mysql(6)Index 从数据页的角度看 B+ 树
    从数据页的角度看 B+ 树 大家背八股文的时候,都知道 MySQL 里 InnoDB 存储引擎是采用 B+ 树来组织数据的。 这点没错,但是大家知道 B+ 树里的节点里存放的是什么呢?查询数据的过程又是怎样的? 这次,我们从数据页的角度看 B+ 树,看看每个节点长啥样。 InnoDB 是如何存储数据的? MySQL 支持多种存储引擎,不同的存储引擎,存储数据的方式也是不同的,我...
    2020-10-17 08:15:55 | Database
  • mysql(5)表
    4.1索引组织表 在InnoDB存储引擎中, 表都是根据主键顺序组织存放的, 这种存储方式的表称为索引组织表(index organized table) 。 在InnoDB存储引擎表中, 每张表都有个主键(PrimaryKey) , 如果在创建表时没有显式地定义主键, 则InnoDB存储引擎会按如下方式选择或创建主键: (1)首先判断表中是否有非空的唯一索引(Unique NOT N...
    2020-10-17 08:15:55 | Database
  • mysql(4)文件系统
    二进制日志 二进制日志( binary log) 记录了对MySQL数据库执行更改的所有操作, 但是不包括SELECT和SHOW这类操作, 因为这类操作对数据本身并没有修改。 然而, 若操作本身并没有导致数据库发生变化,那么该操作可能也会写入二进制日志。 例子 例如: mysql> insert into user (user_id, user_name, remark) v...
    2020-10-17 08:15:55 | Database
  • mysql learn-03-Innodb 引擎介绍
    不同版本特性 体系架构 后台线程 刷新内存池数据,保证内存缓存的是最新的数据,将已修改的数据文件刷新到磁盘中,数据库发生异常时InnoDB能恢复至正常运行状态. Master Thread 负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新,合并插入缓冲,UNDO页的回收. IO Thread Async IO处理IO请求,四种Thre...
    2020-10-17 08:15:55 | Database
  • mysql learn-03-Innodb chat 聊一聊 innodb 数据库引擎
    chat Q: 详细介绍一下 InnoDB InnoDB是MySQL数据库管理系统的一种存储引擎,最初由Innobase Oy AB开发,后来被Oracle Corporation收购。 它是MySQL中最流行和广泛使用的存储引擎之一,也是默认的存储引擎。 以下是关于InnoDB的详细介绍: 特点: 事务支持:InnoDB提供了对ACID(原子性、一致性、隔离性和...
    2020-10-17 08:15:55 | Database
  • mysql learn-02-mysql 体系结构和存储引擎
    体系结构 连接者:不同语言的代码程序和mysql的交互(SQL交互) 1、连接池管理、缓冲用户的连接,线程处理等需要缓存的需求 2、管理服务和工具组件系统管理和控制工具,例如备份恢复、Mysql复制、集群等 3、sql 接口接受用户的SQL命令,并且返回用户需要查询的结果 4、查询解析器 SQL 命令传递到解析器的时候会被解析器验证和解析(权限、语法结构) 5、查询优化器 S...
    2020-10-17 08:15:55 | Database
  • mysql learn-01-mysql limit 的分页性能很差问题及其解决方案
    业务背景 以前有一个查询是全表扫,感觉对 database 不友好。 所以想改为 limit 进行分页查询。 代码编写时使用 mybatis-pageHelper 分页插件,直接处理分页。 结果实际性能却很差,为什么呢? limit 的性能问题 MySQL的limit基本用法很简单。limit接收1或2个整数型参数,如果是2个参数,第一个是指定第一个返回记录行的偏移量,第二个是返...
    2020-10-17 08:15:55 | Database