MySQL技术内幕
文章平均质量分 73
野鸭丁真
这个作者很懒,什么都没留下…
展开
-
第六章:锁
锁机制是为了:最大程度利用数据库的并发访问,并确保每个用户以一致性读取和修改数据。 lock和latch 锁 锁的类型 共享锁(s锁),允许事务读一行数据 排他锁(x锁),允许事务删除或者更新一行数据 对同一行记录锁的兼容性。 多粒度锁:行锁(细粒度),表锁(粗粒度)。 对细粒度对象上锁,先对粗粒度对象上锁。 意向锁是表级别的锁,设计目的是为了在下一个事务揭示下一行将被请求的锁的类型。 意向锁会阻塞全表扫描的请求,不会阻塞其他请求。 一致性非锁定读 通过MVC...原创 2022-02-26 22:30:16 · 671 阅读 · 0 评论 -
第七章:事务
认识事物 事务可以由简单SQL语句组成,也可以由一组SqL语句组成。对于事务的操作,要么都成功,要么都不成功。 ACID A:原子性。要么都成功,要么都不成功。 C:一致性。事务开始和结束,数据库的完整性约束没有被破坏。 I:隔离性。某个事务提交之前对别的事务不可见,锁实现。 D:持久性。事务一旦提交,结果就是永久性的。持久性保证的是高可靠性,而不是高可用性。 分类 扁平事务:所有操作都是同层次的,原子性。 带有保存点的事务:允许事务回滚到之前的某一状态。 链事务:带有保存点的事务当系统原创 2022-02-25 20:29:05 · 283 阅读 · 0 评论 -
第五章:索引与算法
索引太多,应用程序的性能会下降。索引太多,查询性能下降。 概述 InnoDB存储引擎支持以下索引: B+树索引,全文索引,哈希索引。 数据结构与算法 二分查找法 二叉查找树和平衡二叉树 B+树 B+树索引 B+树高度一般2-4层。 聚集索引 通过主键构建一颗B+树。数据页之间双向链表连接。 数据页上存放的是完整行记录。索引页中存放的是键值和指向数据页的偏移量。 聚集索引的存储不是物理上连续的,而是逻辑上连续的。 范围查询:查找主键某一范围内的数据,...原创 2022-02-22 21:24:15 · 161 阅读 · 0 评论 -
第四章:表
索引组织表 定义:InnoDB引擎中表都是根据逐渐顺序组织存放的。 主键创建: ①显示创建 ②将非空唯一索引变成主键(若出现多个,,将第一个当主键) ③自动创建 InnoDB逻辑存储结构 表空间:所有数据都放在一个空间中。 表空间可分为段,区,页。 表空间 所有数据都放在共享表空间中。 独立表空间中存放的是数据,索引,插入缓冲页。其他数据还是在共享表空间中。 共享表空间扩大后不能收缩回去,会标记那些空间为可用空间。 段 数据段,索引段,回滚段。 数据段为B+树的叶子节点,索原创 2022-02-22 19:34:23 · 270 阅读 · 0 评论 -
第三章:文件
参数文件 MySQL实例启动时,数据库会先读取一个配置参数的文件。MySQL实例启动可以不需要配置参数的文件,此时参数值取决于默认值。 MySQL参数文件是以文本文件的方式进行存储的。 参数 类似于一个键值对,如:key:缓冲池大小size,value:1G。 参数类型 动态参数:在MySQL实例运行过程中可以更改。 用set命令进行更改。 静态参数:在整个实例生命周期中不能更改。 global:整个生命周期生效。 session:当前会话生效。 日志文件 错误文件 记录所有错误原创 2022-02-20 17:07:16 · 357 阅读 · 0 评论 -
第二章:InnoDB存储引擎
概述: InnoDB存储引擎版本 InnoDB体系结构 InnoDB存储引擎有很多内存块,构成了一个大的内存池 后台线程 innodb是多线程的,不同后台线程处理不同任务。 Master Thread IO Thread: 负责IO请求的回调处理。 Purge Thread: 事务被提交后,其所使用的undolog可能不再需要,该线程来回收已经使用并分配的undo页 Page Cleaner Thread: 将之前版本的脏页刷新操作都放入...原创 2022-02-19 21:49:28 · 354 阅读 · 0 评论 -
第一章MySQL
原创 2022-02-19 16:57:51 · 198 阅读 · 0 评论