![](https://img-blog.csdnimg.cn/direct/5acedd4f20ba402cab6ff723626fcb84.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 94
MySQL相关技术。
编程铁匠
一位搬砖十余年的程序猿
展开
-
MySQL日志总结
在MySQL中,日志是非常重要的一个组成部分,它记录了数据库运行状态的各种信息,包括错误信息、查询信息、事务信息等等,是进行异常排查、性能优化、数据恢复和备份的关键基础。本文将重点介绍MySQL中常见的各种日志,解析MySQL日志的作用、底层原理和实现方法,并结合案例加以说明。能够对MySQL中的各种日志有比较全面和深入的了解和认识,有助于更好地使用和管理MySQL。原创 2024-03-19 22:40:59 · 861 阅读 · 1 评论 -
MySQL事务及实现原理
大多数据库管理系统的默认隔离级别(如oracle),该级别下的事务只能读取其他事务已经提交的内容,可避免脏读,但不能避免 不可重复读、幻读。Read View主要是用来做可见性判断的, 即当我们某个事务执行快照读的时候,对该记录创建一个Read View读视图,并且分配一个递增的事务ID,同时维护一个当前活跃事务id列表,把这些属性与DB_TRX_ID作比较,判断当前事务能够看到哪个版本的数据,既可能是当前最新的数据,也有可能是该行记录的undo log里面的某个版本的数据。否者给TM的回执NO。原创 2024-03-17 23:57:13 · 1180 阅读 · 1 评论 -
MySQL内部结构
比如表缓存,记录缓存,key缓存,权限缓存等。当MySQL接收到客户端的查询SQL之后,仅仅只需要对其进行相应的权限验证之后,就会通过Query Cache来查找结果,甚至都不需要经过Optimizer模块进行执行计划的分析优化,更不需要发生任何存储引擎的交互,缓存的意义在于快速查询提升系统性能,可以灵活控制缓存的一致性,MySQL5.7支持内部缓存,8.0之后就废弃掉了。同时所有的数据、数据库、表的定义、表的每一行的内容、索引,都是存在文件系统上,以文件的方式存在,并完成与存储引擎的交互。原创 2024-03-10 22:10:34 · 1933 阅读 · 1 评论 -
MySQL索引总结
用于处理查询的索引长度,如果是单列索引,那就整个索引长度算进去,如果是多列索引,那么查询不一定都能使用到所有的列,具体使用到了多少个列的索引,这里就会计算进去,没有使用到的列,这里不会计算进去。如果字符是数字(‘5’)直接转为相对应的数字,如果是字符(‘a’)统一转为0,所以第一条sql会把等号右边的条件转为数字,然后走a字段的索引,第二条sql会把等号左边的条件转为数字,那就是mysql中e字段,这个工作量就比较大,因此mysql分析出不走索引,性能会更好。那么,数据库是否会存在选错索引的情况了?原创 2024-03-10 17:56:15 · 701 阅读 · 1 评论 -
MySQL中B+树实现原理
如果不存储数据,那么就会存储更多的键值,相应的树的阶数(节点的子节点树)就会更大,树就会更矮更胖,如此一来我们查找数据进行磁盘的 IO 次数又会再次减少,数据查询的效率也会更快。因此其内部结点相对B树更小。问题:我们在平衡二叉树中,每个节点只保存了一个键值和数据,当我们保存海量的数据是,二叉树的高度就会非常高,而且磁盘的利用率也极低,访问磁盘的次数非常多,所以我们必须提高效率,一个节点保存多个键值。AVL树的平衡因子的绝对值不会超过1,正因为如此AVL树的形状肯定不会退化成一条链表的,而是“矮胖”型的树。原创 2024-03-06 23:32:37 · 694 阅读 · 0 评论 -
MySQL存储引擎
存储引擎是MySQL的组件,用于处理不同表类型的SQL操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。使用哪一种引擎可以灵活选择,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能。MySQL服务器使用可插拔的存储引擎体系结构,可以从运行中的 MySQL 服务器加载或卸载存储引擎。查看存储引擎-- 查看支持的存储引擎-- 查看默认存储引擎。原创 2024-03-05 23:29:15 · 579 阅读 · 0 评论