
数据库mysql
文章平均质量分 85
数据库mysql
把苹果咬哭的测试笔记
喜欢分享软件测试、开发相关的各种知识。
展开
-
【Mysql】索引的创建删除以及使用的代价
一、Mysql 中索引的创建删除innodb 和 myisam 引擎会自动为主键或者带有 UNIQUE 属性的列建立索引。如果要为其他列建立索引,就需要显示的指明。1. 创建表的时候创建索引CREATE TABLE 表名 ( 各个列的信息..., (KEY/INDEX) 索引名 (需要被索引的单个列或多个列))注意,KEY 和 INDEX 任用其一即可,是同义词。比...原创 2021-07-30 09:23:00 · 400 阅读 · 0 评论 -
【Mysql】InnoDB 中 B+ 树索引的注意事项
一、根页面万年不动在之前的文章里,为了方便理解,都是先画存储用户记录的叶子节点,然后再画出存储目录项记录的内节点。但实际上 B+ 树的行成过程是这样的:每当为某个表创建一个 B+ 树索引,都会为这个索引创建一个根节点页面。最开始表里没数据,所以根节点中既没有用户记录,也没有目录项记录。当往表里插入用户记录时,先把用户记录存储到这个根节点上。当根节点页空间用完,继续插入记录,...原创 2021-07-29 09:14:00 · 255 阅读 · 0 评论 -
【Mysql】InnoDB 中的聚簇索引、二级索引、联合索引
接上一篇内容。一、聚簇索引其实之前内容中介绍的 B+ 树就是聚簇索引。这种索引不需要我们显示地使用 INDEX 语句去创建,InnoDB 引擎会自动创建。另外,在 InnoDB 引擎中,聚簇索引就是数据的存储方式。它有 2 个特点:特点 1使用记录主键值的大小进行记录和页的排序。其中又包含了下面 3 个点:页(包括叶节点和内节点)内的记录按照主键的大小顺序排成一个单向链表。页...原创 2021-07-27 07:09:00 · 195 阅读 · 0 评论 -
【Mysql】InnoDB 中的 B+ 树索引
接上一篇内容,InnoDB 的作者想到一种更灵活的方式来管理所有目录项,是什么?一、目录项记录页其实这些用户目录项与用户记录很像,只是目录项中的两个列记录的是主键和页号而已,那么就可以复用之前存储用户记录的数据页来存储目录项。为了区分用户记录和目录项,仍然使用 record_type 这个属性,当值为 1 时,表示目录项记录,再来复习一遍:0:普通用户记录1:目录项记录2:Infi...原创 2021-07-26 08:30:00 · 208 阅读 · 0 评论 -
【Mysql】一个简易的索引方案
一、没有索引的时候如何查找先忽略掉索引这个概念,如果现在直接要查某条记录,要如何查找呢?在一个页中查找如果表中的记录很少,一个页就够放,那么这时候有 2 种情况:用主键为搜索条件:这时就是之前文章提过的方式,页面目录中用二分法快速定位到槽,然后遍历该槽对应分组的记录,最终找到指定记录。用其他非主键的列为搜索条件:因为数据页中没有为非主键列建立页目录,无法通过二分法快速定位槽,只能从 ...原创 2021-07-25 08:26:00 · 100 阅读 · 0 评论 -
【Mysql】InnoDB 引擎中的页目录
一、页目录和槽接上一篇,现在知道记录在页中按照主键大小顺序串成了单链表。那么我使用主键查询的时候,最顺其自然的办法肯定是从第一条记录,也就是 Infrimum 记录开始,一直向后找,只要存在总会找到。这种在数据量少的时候还好说,一旦数据多了,遍历耗时一定非常长。于是,作者又想到了一个好办法,灵感来自于书本中的目录。我们翻书的时候想查找一些内容,就会去查看目录,然后直接确定好内容所在的页码。...原创 2021-07-24 08:43:00 · 166 阅读 · 0 评论 -
【Mysql】InnoDB 引擎中的数据页结构
InnoDB 是 mysql 的默认引擎,也是我们最常用的,所以基于 InnoDB,学习页结构。而学习页结构,是为了更好的学习索引。一、页的简介页是 InnoDB 管理存储空间的基本单位,一个页的大小一般是 16kb。为了达成不同的目的,作者设计了多种类型的页,比如:存放表空间头部信息的页存放 change buffer 信息的页存放 inode 信息的页存放 undo 日志信息...原创 2021-07-23 16:26:00 · 191 阅读 · 0 评论 -
【Mysql】执行sql语句后,mysql都做了什么?
查数据大家都经常干,但是你知道从执行sql到看到结果,mysql背后都做了什么事情吗?一、mysql的架构client/server 这种客户端到服务端的架构,大家一定都很熟悉,其实 mysql 也与之类似。可以有多个客户端与服务端连接。客户端可以向服务端发送增删查改的请求。服务端根据请求,对存储的数据进行相应处理。在真实环境中,数据库服务器进程和客户端进程可能运行在不同主机中...原创 2021-07-21 19:28:00 · 421 阅读 · 0 评论 -
【Mysql】数据库索引,百万数据测试索引效果
Mysql官方对索引的定义是:索引(index)是帮助Mysql高效获取数据的数据结构。进而,我们可以知道索引的本质是数据结构。一、索引的分类主键索引:也就是我们常见的 PRIMARY KEY,只有一个列作为主键,唯一标识,不可重复。唯一索引:UNIQUE KEY,避免重复的列出现,唯一索引是可以有多个,同一张表里的多个列都可以设置唯一索引。常规索引:KEY/INDEX,默认的类型,通...原创 2021-05-25 20:59:00 · 116 阅读 · 0 评论 -
【Mysql】数据库事务,脏读、幻读、不可重复读
一、什么是数据库事务数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。——百度百科比如,你有2条sql要执行,如果放到一个事务里,要么2个sql都执行成功,要么都失败。都执行成功了就提交事务,有一个失败了就回滚,不存在一个成功一个失败。二...原创 2021-05-24 21:18:00 · 204 阅读 · 0 评论