![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mysql
文章平均质量分 81
Mysql基础使用、事务、文件、索引、InnoDB存储引擎技术实现
胡尚
只要学不死就往死里学
展开
-
InnoDB存储引擎 索引与算法总结
索引的数据结构与算法、Mysql全文检索原创 2022-01-09 16:31:09 · 524 阅读 · 0 评论 -
Mysql数据库相关各种类型的文件
文章目录参数文件错误日志文件慢查询日志文件查询日志文件二进制日志文件套接字文件pid文件表结构文件表空间文件重做日志文件参数文件Mysql实例启动时,数据库会先去读取一个配置参数文件,用来寻找数据库的各种文件所在的位置以及指定某些初始化参数。这些参数通常定义了某些内存结构有多大等。用户可以通过mysql--help | grep my.cnf 命令来寻找Oracle实例在启动的时候如果找不到配置参数文件的话,是不能完成装载mount操作的。Mysql实例在启动的时候却有点不一样,如果找不到配置参数文原创 2021-12-20 19:40:37 · 895 阅读 · 0 评论 -
Mysql事务。开启事务、脏读、不可重复读、幻读、隔离级别
目录标题概念开启一个事务事务的并发问题概念事务:一组sql语句 要么同时成功 要么同时失败MyISAM存储引擎不支持事务 InnoDB存储引擎支持事务事务的acid原则原子性 atomicity :原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性 consistency :事务必须使数据库从一个一致性状态变换到另外一-个一致性状态隔离性 isolation :一个事务的执行不能被其他事务干扰,并发执行的各个事务之间不能互相干扰。持久性 durabilit原创 2021-11-11 19:35:20 · 725 阅读 · 0 评论 -
Mysql锁机制,行锁表锁
文章目录锁是计算机协调多个线程访问同一个系统资源的机制锁的分类:从数据的操作类型分为:读锁和写锁从数据的操作粒度分为:行锁和表锁原创 2021-11-13 15:18:59 · 1488 阅读 · 0 评论 -
Mysql,group by分组查询、order by排序查询、join连接查询、union联合查询
这里写目录标题入门概念DQL语言基础查询条件查询入门概念DB:数据库 databaseDBMS:数据库关系系统 Database Management SystemSQL:结构化查询语言 Structure Query Language数据库数据表字段mysql安装成功后,比较常见的命令:mysql [-h 主机ip -p 端口] -u 用户名 -p回车输入密码 登录shwo databases; 登录成功后显示所有数据库use 数据库名; 打开数据库show ta原创 2021-11-09 18:53:21 · 1033 阅读 · 0 评论 -
Mysql InnoDB存储引擎 —— 数据页
文章目录页用户数据区域页目录多页页页是InnoDB存储引擎对磁盘进行io操作时最小的数据存储单位。索引B+Tree的每一个节点其实都是一页。InnoDB存储引擎最小的执行单元是页,一页16KB大小。页的主要作用就是提高性能,减少磁盘io的次数。在MySql官网中,介绍一页总共有如下的内容主要的一些结构如下:用户数据区域有这样一个问题,新增几行数据,新增时明明是无序的,可以查询出来时,主键却有序了。这是为什么?在我们批量往数据库中新增一行数据时,首先会将新增的数据存储在一页中,在页里面原创 2021-12-07 15:55:10 · 419 阅读 · 0 评论 -
MySql的创建数据表、约束、外键约束的创建修改删除、级联操作
目录标题对数据库的操作数据表的操作DDL 数据定义语言创建:create修改:alert删除:drop对数据库的操作数据库的创建:create database 数据库名;数据库如果不存在就创建:create database if not exists 数据库名;更改数据库的字符集:alert database 数据库名 character set gdk/utf8;数据库的删除:drop database if exists 数据库名;数据表的操作数据表的创建:create原创 2021-11-11 19:20:35 · 3206 阅读 · 0 评论 -
Mysql流程控制结构,if函数、case结构、if结构、循环结构
目录标题if函数case结构if结构循环结构if函数if函数语法:if(表达式1,表达式2,表达式3);如果表达式1的执行结果为true,则执行表达式2,否则执行表达式3.case结构语法一:类似于java的switch语句case 变量|字段|表达式when 常量1 then 要显示的值或语句;when 常量2 then 要显示的值或语句;...else 要显示的值或语句;语法二:类似于多重ifcase when 条件 then 要显示的值或语句;when 条件 the原创 2021-11-12 13:31:30 · 488 阅读 · 0 评论 -
Mysql视图、变量、存储过程、函数
目录标题视图概念视图的创建视图的修改视图的删除与查询视图的更新变量系统变量自定义变量用户变量局部变量存储过程带in模式带out模式带inout模式删除和查看信息函数视图概念视图其实就是一个虚拟表,具体的使用和普通的数据表一样,是Mysql5.0.1版本提出的新特性,它其实就是将一组复杂的sql语句进行封装。视图的好处是:可重用sql简化复杂的sql保护数据,提高安全性视图的创建语句:create view 视图名as查询语句一个案例如下:查询姓名中包含a字母的员工姓名、部门名原创 2021-11-11 20:21:38 · 317 阅读 · 0 评论 -
Mysql慢查询日志,查询截取分析
目录标题慢查询日志慢查询日志分析工具Show Profile全局查询日志慢查询日志mysql提供了一种慢查询日志的功能,该功能默认是关闭的,我们可以设置一个阀值,就比如3秒钟,只要是执行的sql语句超过了我们定义的阀值就会被记录下来。查看是否开启了慢查询日志SHOW VARIABLES LIKE '%slow_query_log%';默认情况下,slow_query_log变量的值为OFF,表示慢查询日志是禁用的。slow_query_log_file变量表示慢查询的日志文件存放路径,可以原创 2021-11-13 11:44:11 · 853 阅读 · 0 评论 -
MySql DML语言新增多行数据、修改删除多个表
这里写目录标题新增修改删除DML语言——数据操作语言新增语法一:insert into 数据表名(字段1,字段2......字段n) values(值1,值2...值n);这种语法需要注意的地方就是字段的个数要和值对应如果字段不允许为null就必须要给值,如果允许为null就可以在values的括号中写一个null数据表名后面的括号可以省略,如果省略则默认插入整张表的数据语法二:insert into 数据表名set 字段1=值1,字段2=值2......;上面两种语原创 2021-11-09 19:47:13 · 349 阅读 · 0 评论 -
Mysql索引底层结构的分析
索引是帮助mysql快速获取数据的数据结构,索引的本质就是一种数据结构。目的是提高查询效率,类比字典。也可以理解为 排好序的快速查找数据结构数据库系统除了存储数据之外,还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用指向数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。例如下图就是一种可能的索引方式实例:如果不加索引,Mysql在底层的执行过程其实是把每一行数据记录从磁盘读取到内存中,然后进行查询条件的比对,每一次读取数据都是一次磁盘IO。早期的Mysql索引还原创 2021-12-07 15:47:24 · 213 阅读 · 0 评论 -
Mysql数据库 InnoDB存储引擎中Master Thread的执行流程
master Thread所做的事,该线程主要是有主循环、后台循环、清理循环、暂停循环组成。innodb1.0.X之前,主循环所做的事情主要是分为两个部分,第一部分就是每秒种所做的事情,第二部分就是每10所做的事情。每秒所做的事情:每秒都会刷新日志文件至磁盘每秒判断脏页所占的比例来决定是否要刷新,刷新100个每秒判断磁盘io是否大于5次来决定是否要合并插入缓冲,如果没有用户事件就跳转至后台循环每十秒所做的事情:如果磁盘io前十秒加起来没有超过20次就进行脏页刷新操作,刷新100个清理U原创 2021-12-10 16:40:22 · 434 阅读 · 0 评论 -
Mysql 数据库InnoDB存储引擎中主要组件的刷新清理条件:脏页、RedoLog重做日志、Insert Buffer或ChangeBuffer、Undo Log
InnoDB存储引擎是Mysql数据库使用很广泛的一个存储引擎,底层的一些实现机制也值得我们去探究,它底层使用了很多的机制来保证数据的安全性与效率。本文所探究的主要是对脏页、RedoLog重做日志、Insert Buffer或ChangeBuffer、Undo Log的刷新清理。原创 2021-12-14 22:13:38 · 1087 阅读 · 0 评论 -
Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
文章目录Buffer Pool概念几个问题redo logBin logUndo logChange BufferBuffer Pool概念上面我们了解了InnoDB存储引擎页的概念,但我们并不知道页在磁盘中是如何存储,在内存中又是如何存储?Buffer Pool是内存中的一块区域,当我们想查询一条数据,首先会在磁盘中找到存放这条数据的某一页。然后将这一页的数据复制到Buffer Pool中如果接下来另一个客户端也是查询这条数据的话,那么就会直接在Buffer Pool中获取。如果是修改语原创 2021-12-07 16:14:47 · 843 阅读 · 0 评论 -
Mysql索引,索引的优化,如何避免索引失效案例
目录标题索引简介索引简介索引其实就是排好序快熟查找的数据结构。索引的目的就是帮助我们快速查找数据。数据库除了存储数据之外,还维护着满足特定查找算法的数据结构,这种数据结构以某种方式引用指向数据。我们就可以在数据结构上快速查找到我们想要查询的数据,这种数据结构就是索引。比如下图就是一种可能的索引数据结构我们就可以通过右边的索引快速找到左边的数据我们对数据表进行修改操作,相应的会对索引也进行修改。索引本身也比较大,不可能全存储在内存中,因此往往是以索引文件的形式存储在磁盘上。索引有几种数据结构的原创 2021-11-12 19:48:30 · 1019 阅读 · 0 评论 -
InnoDB存储引擎关键特性
InnoDB存储引擎包括:插入缓冲 Insert BufferChange Buffer两次写 Double Write自适应哈希索引 Adaptive Hash Index异步IO Async IO刷新临界页 Flush Neighbor Page原创 2021-12-16 10:54:31 · 1379 阅读 · 0 评论 -
Mysql InnoDB存储引擎中的checkpoint技术
InnoDB存储引擎中的CheckPoint技术。目的:Mysql宕机重启后,数据恢复的效率保证Buffer Pool的可用性保证重做日志文件的可用性CheckPoint可以分为两种,第一种当数据库关闭时执行CheckPoint,第二种是刷新一部分的脏页。InnoDB存储引擎选择的是第二种。InnoDB存储引擎有一下四种情况会进行CheckPoint:以一定频率 秒为单位进行CheckPoint当LRU列表中空闲的页不足100个时会进行CheckPoint保证redoLog文件的可用原创 2021-12-10 08:55:39 · 474 阅读 · 0 评论