![](https://img-blog.csdnimg.cn/25d444a26a564b088cefdd2a8927c679.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL技术内幕
文章平均质量分 83
MySQL技术内幕 InnoDB存储引擎
杨林山小野猪
杨林山前万里长江澄濁浪,天妃庙內千年香火净凡心。
展开
-
备份、恢复与性能调优
备份与恢复概述根据备份的方法将备份分为:Hot Backup(热备)(在线备份)Cold Backup(冷备)(离线备份)Warm Backup(温备)热备是指数据库运行中直接备份,对正在运行的数据库操作没有任何的影响;冷备是指备份操作是在数据库停止的情况下,一般只需要复制相关的数据库物理文件即可;温备同样是在数据库运行中备份,但是会对当前数据库的操作有所影响。按照备份后的内容,备份又可以分为:逻辑备份裸文件备份在MySQL数据库中,逻辑备份是指备份出的文件内容是可读的,一般原创 2021-11-16 09:18:39 · 1094 阅读 · 0 评论 -
InnoDB存储引擎:事务
认识事务概述事务:访问并更新数据库中各种数据项的一个程序执行单元。数据库引入事务的主要目的:事务会把数据库从一种一致状态转换为另一种一致状态。在数据库提交工作时,可以确保要么所有修改都已经保存了,要么所有修改都不保存。InnoDB存储引擎中的事务完全符合ACID的特性:原子性(atomicity)(整个数据库事务是不可分割的工作单位)一致性(consistency)(事务将数据库从一种状态转变为下一种一致的状态)隔离性(isolation)(要求每个读写事务的对象对其他事务的操作对象能相互分原创 2021-11-15 16:56:37 · 1157 阅读 · 0 评论 -
MySQL体系结构和存储引擎
1. 数据库和实例数据库:物理操作系统文件或其他形式文件类型的集合。实例:MySQL数据库由后台线程以及一个共享内存区组成。(数据库实例才是真正用于操作数据库文件的)实例与数据库的关系通常是一一对应的,但是在集群情况下可能存在一个数据库被多个数据实例使用的情况。MySQL被设计为一个单进程多线程架构的数据库,也就是说MySQL数据库实例在系统上的表现就是一个进程。从概念上说,数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合;数据库实例是程序,是位于用户与操作系统之间的一原创 2021-10-25 16:50:58 · 100 阅读 · 0 评论 -
InnoDB存储引擎
1. InnoDB体系架构1.1 后台线程后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据;此外将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常的情况下InnoDB能够恢复到正常状态。后台线程有三种:Master Thread(核心线程;主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性)IO Thread(负责IO请求的回调处理)Purge Thread(回收已经使用并分配的 undo 页)1.2 内存1.2.1 缓冲池InnoDB存原创 2021-10-26 19:51:10 · 93 阅读 · 0 评论 -
InnoDB存储引擎:文件和表
文件构成MySQL数据库和InnoDB存储引擎表的各种类型文件:参数文件(告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数)日志文件(用来记录MySQL实例对某种条件做出响应时写入的文件)socket文件(当用UNIX域套接字方式进行连接时需要的文件)pid文件(MySQL实例的进程ID文件)MySQL表结构文件(用来存放MySQL表结构定义文件)存储引擎文件(存储了记录和索引等数据)表索引组织表根据主键顺序组织存放的表称为索引组织表。如果在创建表时没有显式原创 2021-11-02 16:33:50 · 225 阅读 · 0 评论 -
InnoDB存储引擎:索引与算法
InnoDB存储引擎索引概述InnoDB支持以下几种常见的索引:B+ 树索引 (传统意义上的索引,这是目前关系型数据库系统中查找最为常用和最为有效的索引;B+ 树索引并不能找到一个给定键值的具体行,能找到的只能是被查找数据行所在的页)全文索引 (将存储于数据库中的整本书或整篇文章中的任意内容信息查找出来的技术)哈希索引 (自适应,InnoDB存储引擎会根据表的使用情况自动为表生成哈希索引,不能人为干预是否在一张表中生成哈希索引;哈希索引只能用于搜索等值查询 )B+ 树索引B+ 树索引的本质就原创 2021-11-09 09:55:25 · 1105 阅读 · 0 评论 -
InnoDB存储引擎:锁
什么是锁锁是数据库系统区别于文件系统的一个关键特性。锁机制用于管理对共享资源的并发访问。数据库使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性。InnoDB 存储引擎锁的实现和 Oracle 数据库非常类似,提供一致性的非锁定读、行级锁支持。行级锁没有相关额外的开销,并可以同时得到并发性和一致性。lock 与 latch在数据库中,lock 与 latch 斗可以被称为“锁”,但是两者有着截然不同的意义。latch 一般称为闩锁,因为其要求锁定的时间必须非常短,若持续的时间长,则原创 2021-11-10 19:30:50 · 1052 阅读 · 0 评论