MYSQL
文章平均质量分 50
localhost:8081
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL中的 redolog
文章摘要: Redolog是InnoDB用于保证事务持久性的关键机制,它通过记录数据页的修改而非直接刷新整个页面来解决传统方案的空间浪费和I/O性能问题。Redolog采用紧凑格式存储,包含类型、页号、表空间ID和具体修改内容等信息,支持顺序写入磁盘。文章详细介绍了两种redolog类型:简单物理日志(如记录row_id更新)和复杂逻辑日志(如MLOG_COMP_REC_INSERT用于紧凑行格式记录插入),后者能更高效地处理B+树索引页面的多位置修改。通过redolog,即使系统崩溃也能恢复已提交事务的修原创 2025-07-26 13:11:32 · 1055 阅读 · 0 评论 -
聊聊MySQL中的buffer pool
Buffer Pool是InnoDB用于缓存磁盘数据页的内存区域,默认128MB,可通过参数调整。它将连续内存划分为16KB缓冲页,通过控制块管理。Buffer Pool采用三种链表管理机制:free链表记录空闲缓冲页;flush链表追踪被修改的脏页;LRU链表实现页面置换策略,划分为热数据区和冷数据区,通过innodb_old_blocks_pct参数控制比例,并对热数据区访问优化减少移动频率,以提高缓存命中率。预读机制可能导致冷数据占用空间,为此采用分区管理平衡性能。原创 2025-07-15 18:32:29 · 642 阅读 · 0 评论 -
mycat中的分片规则
范围取模一致性hash应用指定固定分片hash算法字符串hash解析按天按月原创 2024-08-09 10:53:02 · 282 阅读 · 0 评论 -
MySQL主从复制保姆级教程(学习笔记)
主库出现问题,可以切换到从库提供服务实现读写分离,降低主库的房屋内压力可以再从库中执行备份,避免备份期间影响主库服务。原创 2024-08-07 11:17:32 · 278 阅读 · 0 评论 -
MySQL中的日志
错误日志是MySQL中最重要的日志之一默认是开启的,它记录了MySQL启动和停止时,以及入伍再运行过程中发发生任何严重错误时的相关信息,当数据库出现任何故障无法正常运行时可以查看此日志。作用:灾难时的数据恢复、MySQL的主从复制、在MySQL8中默认二进制日志是开启的。二进制日志记录了所有的DDL语句和DML语句除(select,show)。默认是关闭的,需要修改/etc/my.cnf文件。原创 2024-08-07 11:09:28 · 294 阅读 · 0 评论 -
MySQL中常用工具
mysqlimport只能导入文本文件,不能导入sql文件。原创 2024-08-06 10:33:50 · 249 阅读 · 0 评论 -
了解MVCC
redo log保证了事务的持久性undo log保证了事务的原子性redo log+undo log保证了事务的一致性MVCC+锁保证了事务的隔离性。原创 2024-08-05 18:20:11 · 651 阅读 · 0 评论 -
事务的原理(学习笔记)
如果没有redo log 我们在执行完增删改查语句后会将脏页直接刷新到磁盘中,此时用户事务已经提交,一旦刷新失败则无法修复数据。如果不适用redo log 还会存在性能问题,事务中的一组操作都是随机操作数据页,涉及到大量随机磁盘IO,而日志都是顺序追加,是顺序磁盘IO这种机制也被叫做WAL。redo log中的日志文件是循环写入的,已经成功刷新磁盘中的数据对应的日志就没什么用了。用于记录被修改前的信息,它与redo log 不一样它是逻辑日志。原创 2024-08-05 16:40:40 · 322 阅读 · 0 评论 -
InnoDB引擎
段:分为数据段,索引段,回滚段,InnoDB是索引组织表,数据段就是B+树的叶子节点,索引段即为B+树的非叶子节点,段用来管理多个Extent(区)页:是InnoDB存储引擎管理磁盘管理的最小单元,每个页默认大小为16KB,为了保证页的连续性,InnoDB默认每次从磁盘中申请4-5个区。区:表空间的单元结构,每个分区的大小为1M,默认情况下,InnoDB存储引擎页大小为16K,即一个区中一共有64个连续的页。表空间也就是ibd文件,一个MySQL实例可以对应多个表空间,用于存储记录,索引等数据。原创 2024-08-05 16:36:22 · 287 阅读 · 0 评论 -
MySQL中的锁
全局锁,表级锁,行级锁。原创 2024-08-01 17:54:52 · 431 阅读 · 0 评论 -
MySQL中的触发器
触发器是与表有关的数据库对象,在insert/update/delete之前或者之后,触发并执行触发器中定义的sql语句集合,触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作使用别名OLD和NEW来引用触发器中发生变化的记录内容,这和其它数据库是相似的,目前触发器只支持行级触发,不支持语句级触发。原创 2024-07-27 18:54:47 · 223 阅读 · 0 评论 -
MySQL中的视图
视图是一种虚拟存在的表,视图中的数据并不在数据库中实际存在,行和列中数据来自自定义视图的查询中使用的表,并且是在使用视图时动态生成的通俗来讲,视图只保存了查询的sql逻辑,不保存查询的结果,视图中的实际数据是来自后面的select语句。原创 2024-07-26 11:56:30 · 452 阅读 · 0 评论 -
SQL优化
当数据量多时,我们可以批量插入数据,手动提交事务,按照主键顺序插入来提高sql的执行效率过程。当有大量数据时即使用 insert进行批量插入效率也并不高,此时就需要使用MySQL的load指令进行插入。如果主键乱序插入可能会出现页分裂现象。主键设计需要满足一下几个原则。原创 2024-07-25 22:58:03 · 350 阅读 · 0 评论 -
MySQL中的索引使用
假设我们的联合索引为 profession age status 这三个字段,那么status这个字段的索引会失效。如果索引了多列(联合索引),要遵守最左前缀法则,查询从索引的最左列开始,且不跳过索引中的列,联合索引中,出现范围查询(>原创 2024-07-24 23:15:49 · 337 阅读 · 0 评论 -
SQL性能分析
show profile 能够在做sql优化时帮助我们了解时间都花费在哪里并且通过having_profiling参数,能够看到当前MySQL是否支持profile操作。慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有sql语句的日志。MySQL 的慢查询日志默认没有开启,需要在MySQL的配置文件(/etc/my.cnf)中配置。设置完毕后重启服务进行测试。原创 2024-07-23 23:29:11 · 224 阅读 · 0 评论 -
事务的优点
最近学习事务的相关知识,打算总结一下它的优点1.数据的一致性:事务可以确保一组操作要么全部成功要么全部失败。这样可以保证数据的一致性,避免了在一组操作中出现部分操作成功而部分操作失败的情况。2. 数据的完整性:事务可以将一组操作当作一个逻辑单元,这样可以保证数据库中的数据一直处于有效和完整的状态。在事务中,可以定义一些约束条件和验证规则,确保数据的完整性。3. 并发控制:在并发环境下,多个用户或应用程序可能同时对数据库进行读写操作。原创 2023-07-26 22:38:34 · 496 阅读 · 0 评论 -
MYSQL中的索引
索引(index)是帮助Mysql高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式应用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这就是索引。原创 2024-07-23 22:46:05 · 455 阅读 · 0 评论
分享