数据库事务机制
数据库事务机制功能介绍
1.事务功能作用
功能作用:事务功能主要是保证数据库中数据的安全性
事务机制:ACID
详细ACID参考链接:https://dev.mysql.com/doc/refman/8.4/en/mysql-acid.html
A: atomicity(原子性)
在一个事务中,做的所有语句操作,要么都成功,要么都失败,不能有部分成功部分失败的情况
银行转账 账户A ...
数据库服务存储引擎
①.数据库服务存储引擎介绍
存储引擎官方网站资料:https://dev.mysql.com/doc/refman/8.4/en/innodb-storage-engine.html
1.什么是存储引擎/存储引擎有什么作用
利用存储引擎可以有效管理磁盘和内存硬件,实现数据库服务数据调取和数据存储
1.客户端
包含连接工具信息(命令/工具/程序)
2.服务端
包含连接层:负责实现 ...
数据库服务基础应用操作
数据库服务基础应用操作
数据库语句应用实践
1)DCL和数据库安全有关的操作
grant/revoke # 和授权有关操作
create use/alter user/drop user # 和用户相关操作
commit 可以确保DML语句操作后,产生的数据信息合理存储到磁盘中
rollback 可以实现DML语句操作后,将改动调整的数据做回退操作
DML- insert update del ...
MySQL的编译安装
在 Linux(以 CentOS 7/Stream 8/9 为例)上源码编译安装 MySQL 8.0是一个相对复杂的过程,因为它需要大量的依赖库、较高的内存(建议 4GB 以上,否则编译可能失败)以及较新的 CMake 版本。
以下是基于最新环境整理的MySQL 8.0 源码编译安装完整实战指南。
⚠️ 编译前重要提示
硬件要求:编译过程非常消耗内存和 CPU。 ...
数据库服务基础管理操作
1.数据库服务基础管理操作
1)数据库服务连接管理
MySQL数据库服务应用架构:C/S
利用C/S架构管理数据库服务端时会有两种方式:
1.采用本地方式连接管理
mysql -uxxx -pxxx -S 套接字文件(/tmp/mysql.sock--数据库服务端启动时自动生成 关闭后自动删除)
2.采用远程方式连接管理
mysql -uxxx -pxxx -h地址/域名 -P端口号
...
MYSQL主从配置
1、Mysql主从配置
MySQL的主备(主从)配置是一种常见的数据高可用性和数据备份方案,主要用于实现数据的实时复制,确保数据的一致性和系统的容错能力。下面我将详细介绍如何配置MySQL的主备环境。
1.1、 环境准备
确保你的服务器上已经安装了MySQL,并且至少有两台服务器,一台作为主服务器(Master),另一台作为从服务器 ...
MySQL 优化实战:为何 DELETE + IN 子查询性能不佳,而 JOIN 却能高效利用索引?
问题背景:一次看似简单的数据清理
在日常功能开发过程在中,我们经常需要根据某些条件清理特定数据。某天,我需要在 tbl_doa_activityspecial 表中删除与另一组条件匹配的记录。直觉上,我写下了这样的 SQL:
DELETE FROM tbl_doa_activityspecial
WHERE ActSetId IN (SELECT DISTINCT ActSetId FROM ...);
...
玩一玩 proxysql
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!
cnblogs博客
zhihu
Github
公众号:一本正经的瞎扯
一个后端服务的性能不好,我怀疑是数据库拖慢了性能,为了便于不侵入代码而对性能进行分析,我尝试了 proxysql 组件:
在 mysql 客户端和 mysql 服务器之间搭建 proxysql 代理服务,通过 proxy 来记录日志 ...
MySQL 5.6 2000 万行高频读写表新增字段实战:从慢执行到无锁落地全解析
一、背景与问题缘起
MySQL 5.6.51 版本下 2000 万行核心业务表开展新增字段操作,需求为新增BIGINT(19) NOT NULL DEFAULT 0 COMMENT '注释'(因业务实际需要存储大数值关联字段)。
表的核心特性为Java 多线程密集读写,业务请求持续高频,初始执行原生ALTER TABLE语句时出现两大核心问题:
72 万行测试表执行耗时 203 秒 ...
小心my.cnf中重复系统变量设置带来困扰
我们知道MySQL对不同位置的my.cnf文件的读取顺序是有优先级的. 那么问题来了, 如果同一个my.cnf中, 不同位置出现了两个相同系统变量/参数, MySQL会读取哪一个系统变量呢? 是不是一个很有意思的问题!
那么我们先来看看,在测试环境的my.cnf中, 我们以变量server_id为例子,
server_id=1002
我们在my.cnf中新增了一个server_i ...
MySQL 8.0.35 单实例升级到MySQL 8.4.x
因为MySQL 8.0.x版本即将于2026年4月结束服务支持,计划将手头MySQL 8.0.35升级到MySQL 8.4.8这个LTS版本. 下面是之前在测试环境的一些测试总结.仅供参考!
注意:之前官方只提供了MySQL 8.4.5,所以下面测试案例为MySQL 8.4.5,生产环境建议升级到8.4.8 LTS这个版本. 两者升级方式其实是一样的.
升级到MySQL 8.4.5有下面三种 ...
MySQL存储过程回滚
MySQL存储过程出错回滚是保证数据一致性的重要措施,如何处理好存储过程出错后的回滚,请看回滚处理步骤及需要注意的几个事项:
MySQL存储过程回滚
首先看一下当前MySQL数据库是否已经开启了自动提交。
在数据库中,使用Mysql>show variables like ‘autocommit’;
Vaiable_name Value
Autocommit On
在存储过程中,有两种 ...
mysql的bigint 和 bigint(20) 主键自增的区别解析
目录✅bigint和bigint(20)主键自增的区别(完整解答,开发必看)一、核心区别:bigint≈bigint(20),只有「显示宽度」的差异✅ 先明确 MySQL 中数值类型(M)的含义✅ 什么是「显示宽度」?二、重中之重:这3个关键点,完全一致(核心重点)✅ 1. 取值范围完全相同✅ 2. 占用的磁盘存储完全相同✅ 3. 主键自增的逻辑完全 ...
mysql的bigint 和 bigint(20) 主键自增的区别解析
目录✅bigint和bigint(20)主键自增的区别(完整解答,开发必看)一、核心区别:bigint≈bigint(20),只有「显示宽度」的差异✅ 先明确 MySQL 中数值类型(M)的含义✅ 什么是「显示宽度」?二、重中之重:这3个关键点,完全一致(核心重点)✅ 1. 取值范围完全相同✅ 2. 占用的磁盘存储完全相同✅ 3. 主键自增的逻辑完全 ...
MySQL全局锁、表锁、行锁、间隙锁、临键锁超详细讲解
目录全局锁表级锁行锁意向锁(Intention Locks)死锁与最佳实践总结并发事务访问相同记录的情况大致可以划分以下几种:
读-读情况:即并发事务相继读取相同的记录。读取操作本身不会对记录有一毛钱影响,并不会引起什么问题,所以允许这种情况的发生。写-写情况:即并发事务相继对相同的记录做出改动。
作为多用户共享的资 ...
MySQL表的内外连接使用详解
目录内连接外连接内连接
内连接实际上就是利用where子句对两种表形成的笛卡尔积进行筛选,前面所说过的查询都是内连接,也是在开发过程中使用的最多的连接查询。
select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;
inner join : 将两个表按照指定条件关联匹配,只返回两个表中满足连接条件的行。可简写为jo ...
MySQL 8.0升级中的字符集陷阱与解决方案
目录引言问题场景:看似简单的查询突然报错背景情况错误现象初步困惑深度分析:技术债务的隐形爆发根本原因探查技术细节深挖解决方案:分层治理策略方案一:SQL层临时解决(立即可用)方案二:表结构层根本解决(推荐方案)方案三:数据库级系统解决(长远规划)实施效果与经验总结解决效果深度经验总结1. 版本升级的隐性风 ...
Navicat导出MySQL数据库表结构到Excel过程
目录前言一、第一步二、第二步三、第三步四、总结前言
基于当前历史数据库,将数据库中的所有的表结构导出到Excel文件中,供后续使用或者存档。
一、第一步
1、执行以下SQL语句:
下面的dev_test是你当前需要导出的数据库名称。
SELECT
TABLE_NAME 表名,
COLUMN_NAME 字段名称,
COLUMN_TYPE 字段类型,
CHARACTER_MA ...
MySQL SQL查询新模式CTE使用详解
目录前言1、成果收益2、背景3、什么是CTE4、CTE如何使用基本语法多个 CTE 的使用示例:5、经验总结前言
本文将为开发者系统解析MySQL 8.0引入的CTE特性。通过真实业务场景案例,您将掌握:
如何用CTE重构嵌套噩梦般的SQL语句递归查询实现树形结构遍历的核心方法通过查询复用提升30%以上执行效率的技巧CTE在复杂业务场景下的 ...
MySQL中的binlog日志操作示例
目录一、什么是binlog?二、为什么需要binlog?2-1、binlog的主要用途有三个:2-2、binlog的三种格式1、STATEMENT格式(记录SQL语句)2、ROW格式(记录行数据变化)3、MIXED格式(混合模式)三、如何启用binlog?四、实际操作示例4-1、一个完整的场景理解五、三个日志的作用5-1、三种日志的层次归属5-2、详细对比三种日志1. ...