随心记

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

表连接的原理 && 成本优化

表连接的原理连接简介连接的本质就是把各个连接表中的记录都取出来依次匹配的组合加入结果集并返回给用户。不论哪个表作为驱动表,两表连接产生的笛卡尔积肯定是一样的。而对于内连接来说,由于凡是不符合 ON 子句或WHERE 子句中的条件的记录都会被过滤掉,其实也就相当于从两表连接的笛卡尔积中把不符合过滤条件

Administrator Administrator 发布于 2022-11-24

MySQL性能分析2

Json格式的执行计划上篇说的EXPLAIN 语句输出中缺少了一个衡量执行计划好坏的重要属性 —— 成本。不过 MySQL 为我们提供了一种查看某个执行计划花费的成本的方式:在 EXPLAIN 单词和真正的查询语句中间加上 FORMAT=JSON 。eg:json:{ "query_bl

Administrator Administrator 发布于 2022-11-23

MySQL性能分析1

数据库调优思考步骤想要调优,那么久得先进行分析,哪些可以调?怎么调?其总体分为观察(Show status) 和 行动(Action) 两个部分。字母 S 的部分代表观察(会使用相应的分析工具),字母 A 代表的部分是行动(对应分析可以采取的行动)。不同的调优取得的效果与成本:

Administrator Administrator 发布于 2022-11-22

索引的创建与设计原则

写在前面:知识的主体都来自于《MySQL是怎样运行的》索引的分类MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。从功能逻辑上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。按照物理实现方式 ,索引可以分为 2 种:聚簇索引和非聚簇索引。按照作

Administrator Administrator 发布于 2022-11-16