随心记

主从复制

前言主从复制的问题涉及到前面说到的binlog日志问题,而且对于主从复制的实操我是不熟练的,这里只能是浅显的记录一下。主从复制,要先有主才会有从,为什么要有主从,主要是为了提升数据库并发能力。主库负责写,从库负责读,在主库写入数据后,要更新到从库,这就是主从复制,这期间会涉及到很多问题。一般应用对数

Administrator Administrator 发布于 2022-12-06

MySQL并发事务访问相同记录1、读-读 情况并发事务相继读取相同的记录 。读取操作本身不会对记录有任何影响,并不会引起什么问题,所以允许这种情况的发生。2、写-写 情况并发事务相继对相同的记录做出改动。在这种情况下会发生脏写的问题,这是不允许发生的情况,所以MySQL会通过加锁来实现让事务顺序运行

Administrator Administrator 发布于 2022-12-06

MVCC

什么是MVCCMVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的 并发控制 。这项技术使得在InnoDB的事务隔离级别下执行 一致性读 操作有了保证。换言之,就是为了查询一些正在被另一个事务更新

Administrator Administrator 发布于 2022-12-04

Undo日志

为什么需要undo 日志(undo log)事务需要保持原子性,但在事务的执行过程中(未提交),如果遇到不可抗力的因素造成事务未能执行完成或者开发人员手动的进行事务的rollback操作。这些问题会导致部分数据已经进行了修改,但不是全部,所以不能保持原子性。但为了实现原子性,那么我们就得将已经修改了

Administrator Administrator 发布于 2022-12-03

关于redo日志;binlog日志

补几篇我理解redo日志和binlog日志时看到博客Mysql - 脏页刷新机制:https://blog.csdn.net/it_lihongmin/article/details/115475058Mysql学习专栏之六(浅析Mysql中的脏页刷新):https://blog.csdn.net/

Administrator Administrator 发布于 2022-12-02

redo 日志

为什么需要redo 日志(redo log)redo log又称为 重做日志 ,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。程序实现的增删改查操作在真正访问页面之前,需要把在磁盘上的页缓存到内存中的 Buffer Pool 之后才可以访问。但这只是内存级别的,如果我们只在内存的

Administrator Administrator 发布于 2022-12-01

事务基础

事务概述存储引擎支持情况SHOW ENGINES 命令来查看当前 MySQL 支持的存储引擎都有哪些,以及这些存储引擎是否支持事务。基本概念事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。事务处理的原则:保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个

Administrator Administrator 发布于 2022-12-01

数据库的设计与调优

三大范式范式指的是关系型数据库在表设计的时候遵循的规则第一范式字段不可再拆分,具有原子特性(最小粒度)即某个字段不能拆分成多个信息,但这个字段究竟是否是原子性其实是主观的比如地址:有些可能会拆分成省、市、区、镇等,有些不做拆分比如年级信息有些可能学18级xx专业x班;有些又会在不同专业和年级之间拆分

Administrator Administrator 发布于 2022-11-29

MySQL基于规则的优化

前言MySQL 本质上是一个软件,MySQL 的设计者并不能要求使用这个软件的人个个都是数据库高高手。说的就是我啦!!!!小菜鸡!!!!文中关于物化表等情况复现的场景sql我就写不出来了。模拟都不会,唉!学海无涯也就是说菜鸡无法避免写一些执行起来十分耗费性能的语句。即使是这样,MySQL 还是会依据

Administrator Administrator 发布于 2022-11-25