分类: mysql相关

29 篇文章

mysql存储引擎详解
一 MySQL组织架构 MySQL数据库系统采用模块化设计,每个模块各司其职,保证了系统的高效运行和可扩展性。通过了解MySQL的组织架构,我们可以更好地理解其工作原理,并能够进行更有效的优化和调试。结合上图进行详细整理如下: 1. 连接层 连接层负责处理客户端的连接请求,包括认证和授权等操作。主要功能包括: 连接管理:管理客户端的连接和断开。通过…
InnoDB存储引擎表空间
1. 行,页,区,段 InnoDB存储引擎采用分层的存储结构,包括段(Segment)、区(Extent)、页(Page)和行(Row)。每一层都有特定的功能和作用,共同保证了数据的高效存储和检索。下面我们详细介绍每一个层次的具体内容。 1.1 行 (Row) 定义:行是数据库表中最基本的存储单位,表示表中的一条记录。 结构: 事务ID(Trx i…
配置redo log和Binlog的刷盘策略
Redo Log刷盘策略 Redo Log记录了事务的修改操作,以确保在发生故障时可以进行恢复。刷盘策略影响了事务的持久性和数据库性能。 innodb_flush_log_at_trx_commit 设置值: 0:事务提交时,不会立即将日志写入磁盘,而是写入到mysql的内存里,每秒钟刷盘一次。性能最高,但最不安全,可能会丢失最近一秒的事务。 1(…
企业真实案例:从MySQL 5.7迁移到MySQL 8.0
背景 公司当前使用MySQL 5.7数据库,并计划升级到MySQL 8.0以利用其新特性和性能改进。整个过程需要确保数据的完整性和业务的连续性。 步骤 1. 准备工作 确保两台服务器上MySQL 5.7和MySQL 8.0都已安装并运行正常。 确保有足够的存储空间来处理迁移过程中产生的备份和日志文件。 2. 备份数据 在MySQL 5.7服务器上备…
实验:SQL综合练习2
实验一:通过存储过程创建300w条数据 创建表 假设表的名称为test_table,且表结构如下: CREATE TABLE test_table ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT, email VARCHAR(100) ); 编写存储过程 编写一个存储过程…
mysql存储过程
一、介绍 存储过程包含了一系列可执行的SQL语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆SQL。 使用存储过程的优点: 用于替代程序写的SQL语句,实现程序与SQL解耦 基于网络传输,传别名的数据量小,而直接传SQL数据量大 使用存储过程的缺点: 程序员扩展功能不方便 补充:程序与数据库结合使用的三种方式 方式一: MyS…
mysql流程控制
一、条件语句 以下是一个示例的 SQL 条件语句,它使用了 IF、ELSEIF 和 ELSE 结构: delimiter // CREATE PROCEDURE proc_if () BEGIN DECLARE i INT DEFAULT 0; IF i = 1 THEN SELECT 1; ELSEIF i = 2 THEN SELECT 2; …
mysql函数
MySQL 内置函数 MySQL中提供了许多内置函数,以下是一些常用的函数及其示例: 一、数学函数 ROUND(x, y) 返回参数x的四舍五入的有y位小数的值。 SELECT ROUND(123.456, 2); -- 结果:123.46 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。…
mysql触发器
触发器概念 使用触发器可以定制用户对表进行【增、删、改】操作时前后的行为,注意:没有查询。 触发器相关命令 一 创建触发器 # 插入前 CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROW BEGIN ... END # 插入后 CREATE TRIGGER t…