mysql性能优化

您所在的位置:网站首页 shell脚本里执行sql语句显示数据库没连接 mysql性能优化

mysql性能优化

2023-05-05 07:36| 来源: 网络整理| 查看: 265

本课程总共23个章节,158个小节,深入MySQL各个环节,精心录制,2023年最新课程。每个章节都会以原理深入+实际案例进行讲解。特别是对SQL语句这块,更是逐步深入SQL 优化各个环节,图文并茂掌握入SQL 优化的原理和方法。此课程不仅仅是针对DBA,同样无论你是开发工程师还是运维工程师或者从事DBA的同学,相信你一定能从这套课程深入的掌握mysql。

 

1、MySQL在金融互联网行业的企业级安装部署

目录

章节

版本说明

版本说明

安装MySQL规范

1 安装方式2 安装用户3 目录规范

MySQL 5.7 安装部署

1 操作系统配置2 创建用户3 创建目录4 安装5 配置文件6 安装依赖包7 配置环境变量8 初始化数据库9 重置密码

MySQL8 安装

MySQL8 安装

源码安装

1 安装依赖包2 生成源码包3 创建用户4 编译安装5 配置数据库6 连接mysql

多实例部署及注意事项

1 多实例概念2 多实例安装3 mysqld_multi(多实例第二种安装方式)

 

2、mysql启动关闭原理和实战_及常见错误排查

目录

章节

生产中MySQL启动方式

1、 启动原理2、参数文件默认位置及优先级3、 以server方式启动4、 mysqld_safe方式5、 mysqld 方式6、 systemctl 方式

关库

1、相关参数innodb_fast_shutdown2、相关参数innodb_force_recovery3、关闭mysql多种方式

常见MySQL启动失败案例

1.、目录权限2、参数问题3、配置文件4、端口占用5、误删二进制文件6、undo表空间异常7、binlog缓冲异常

MySQL启动失败排查方法

MySQL启动失败排查方法

连接MySQL数据库的方式

连接MySQL数据库的方式

MySQL数据库用户安全策略

1、初始化数据库2、修改密码3、删除无用的用户4、mysql_secure_installation

找回丢失的用户密码

找回丢失的用户密码

 

3、MySQL字符集和校对规则

目录

章节

MySQL字符集和校验规则

MySQL字符集和校验规则

查看字符集方法

1、查看mysql支持的字符集2、查看字符集的校对规则3、查看当前数据库的字符集4、查看当前数据库的校对规则

MySQL字符集设置

1、字符集设置层级关系2、设置MySQL服务器级别字符集3、设置创建对象的字符集

字符集案例

1、常用字符集每个汉字占用字节多少2、大小案例

插入中文乱码解决

插入中文乱码解决

数据库常见字符集及如何选择字符集

数据库常见字符集及如何选择字符集

生产中如何彻底避免出现乱码

生产中如何彻底避免出现乱码

 

4、史上最详细的Mysql用户权原理和实战_生产案例

目录

章节

访问控制

1、连接验证(阶段一)2、允许的连接3、连接优先级4、请求验证(阶段二)

用户管理

1、新增用户2、修改用户3、删除用户4、查看用户

密码管理

1、密码修改2、密码过期设置3、set password4、密码过期策略5、密码插件

MySQL用户权限管理

1、权限粒度2、显示账户权限3、显示账户非权限属性4、库级权限5、表级权限6、列级权限7、权限回收

资源限制

1、用户创建指定配额2、修改配额

MySQL用户权限案例

1、断掉已清理的用户2、忘记密码3、如何禁止一个ip段的某个用户登录4、创建开发账号5、创建复制账号6、创建管理员账号

 

5、InnoDB引擎原理和实战_通俗易懂

目录

章节

缓冲池

1、默认引擎2、设置缓冲池大小3、优化缓冲池4、管理缓冲池5、数据页类型

线程

1、IO线程2、主线程

index page

index page

insert buffer page

insert buffer page

重做日志

重做日志

回滚日志

回滚日志

checkpoint,刷写脏页check point

checkpoint

关键特性

1、插入缓冲2、数据写入可靠性提升技术-doublewrite3、自适应哈希索引-AHI

innodb预读预写技术

预读写

 

6、MySQL文件详解_物理结构_逻辑结构_原理和案例

目录

章节

参数和配置文件

1、文件位置2、查找参数3、参数类型4、参数修改5、示例一6、示例二7、注意事项

错误日志文件

错误日志

通用日志

通用日志

慢查询日志

慢日志

binlog

1、记录什么2、用途3、开启和参数配置4、日志查看5、日志刷新6、删除日志7、日志分析(mysqlbinlog)8、利用二进制日志文件恢复误删的表

InnoDB存储引擎表空间文件

表空间文件

主从同步相关文件

主从同步文件

套接字文件

套接字文件

pid 文件

pid 文件

redo log

1、redo初识2、日志组3、与oracle redo的区别4、相关参数5、和binlog的区别6、redo 缓冲区(innodb_flush_log_at_trx_commit)

InnoDB存储引擎逻辑结构

1、表空间2、段3、区4、页

表碎片清理

1、判断是否有碎片2、整理碎片

表空间文件迁移

1、需求说明2、操作

 

7、SQL编程开发与优化事项

目录

章节

常用语句

1、导入数据2、库操作3、表操作4、数据操作5、use性能影响6、delete、truncate、drop的区别7、SQL语句分类

数据类型与性能

1、整型2、浮点型3、字符串类型4、日期类型

MySQL约束

1、unsigned/signed2、not null3、count(*) 为什么慢4、default5、unique6、 auto_increment7、primary key

SQL编程高级

1、查询Syntax2、查询列3、where子句4、group by … having子句5、order by子句6、limit子句(分页)7、聚合函数8、合并查询9、多表查询10、子查询

表的元数据库管理

1、统计应用库哪些表没有使用innodb存储引擎2、如何查看表中是否有大对象3、统计数据库大小4、统计表的大小

 

8、MySQL索引原理和案例

目录

章节

MySQL索引与二分查找法

1、什么是索引2、索引的优缺点3、索引的最大长度4、二分查找法:折半查找法5、mysql一张表存多少数据后,索引性能就会下降?

剖析b+tree数据结构

1、B和B+树的区别2、索引树高度3、非叶子节点4、指针5、叶子节点6、双向指针7、b+tree插入操作8、b+tree删除操作

相辅相成的聚集索引和辅助索引

1、聚集索引2、聚集索引特点3、聚集索引的优势4、辅助索引

覆盖索引与回表查询

1、回表查询2、覆盖索引

创建高性能的主键索引

1、主键索引创建的原则2、主键索引的特点3、为什么建议使用自增列作为主键

唯一索引与普通索引的性能差距

1、唯一索引特点2、普通索引特点3、唯一索引与普通索引的性能差距

唯一索引与普通索引的性能差距

1、唯一索引特点2、普通索引特点3、唯一索引与普通索引的性能差距

如何使用联合索引

1、什么是联合索引2、创建原则3、排序

Online DDL影响数据库的性能和并发

1、5.6版本之前2、新版本3、online ddl语法4、相关参数5、示例6、影响

pt-ocs原理与应用

1、安装pt-osc2、pt-osc语法3、案例4、pt-osc原理

生产中索引的管理

1、建表时创建索引2、建表后创建索引3、查看索引

SQL语句无法使用索引的情况

1、where条件2、联合索引3、联表查询4、其他情况

 

9、information_schema和sys中性能查看

目录

章节

最常用的STATISTICS和TABLES

1、STATISTICS:用于存放索引的信息2、TABLES:用于存放库表的元数据信息

判断索引创建是否合理

1、选择性2、索引创建的建议

检查联合索引创建是否合理

1、联合索引创建是否合理2、有了联合索引(a,b),还需要单独创建a索引吗?

如何查找冗余索引

查找冗余索引

查找产生额外排序的sql语句

额外排序的sql语句

查找产生临时表的sql语句

临时表的sql语句

全表扫描的sql语句

全表扫描的sql语句

统计无用的索引

无用的索引

索引统计信息

1、存储索引统计信息2、如何查看索引统计信息

 

10、MySQL优化器算法与执行计划

目录

章节

1.简单嵌套查询算法-SNLJ

1.1 算法介绍

1.2 伪代码

1.2 开销成本

1.3 相关参数

2.基于块的嵌套查询算法-BNLJ

 

2.1 算法说明

2.2 开销

2.2 BNL影响

2.3 参数

2.5 总结

3.基于索引的嵌套查询算法-INLJ

 

3.1 算法说明

3.2 伪代码

3.3 总结

4.Multi-Range Read

 

4.1 MRR的工作原理

4.2 MRR开启与关闭

4.3 使用MRR示例

 

5.bached key access join

BKA

6. Index Condition Pushdown

6.1 原理

6.2 示例

6.3 使用限制

7.一条查询SQL语句是怎样运行的

 

7.1. 客户端服务端交互流程

7.2. MySQL逻辑架构图

7.2.1 Server 层

7.2.2 存储引擎层

7.3. 向MySQL发送一个请求

7.3.1 请求流程概述

7.3.2 连接器

7.3.3 查询缓存

7.3.4 分析器

7.3.5 优化器

7.3.6 执行引擎

7.3.7 返回结果给客户端

8、一条更新SQL语句是怎样运行的

1、 操作顺序

2、 日志

2.1 重做日志 redo log

2.2 归档日志 binlog

3、 二阶段提交

3.1 XID

3.2 如何判断binlog和redolog是否达成了一致

3.3 如果不用两阶段提交

9、MySQL长连接与短连接的选择

1、相关参数2、断开连接

10、执行计划explain

1、语法2、执行计划解析

 

11、MySQL查询优化

目录

章节

MySQL查询优化技术

概览

子查询优化

1、优化器自动优化2、优化措施:子查询合并3、优化措施:子查询上拉技术

外连接消除

外连接消除

生产环境不使用join联表查询

不使用join

group by分组优化

1、group by执行流程2、为什么group by要创建临时表

order by排序优化

排序优化

MySQL性能抖动问题

性能抖动问题

count(*)优化

·  count(*)、count(主键 id)、count(字段) 和 count(1)区别

分页优化

9.1 消耗的资源在哪

9.2 优化措施

磁盘性能基准测试

1、安装sysbench2、生成文件3、测试文件io4、清除文件

MySQL基准测试

1、生成数据2、测试(读)3、测试(写)4、清理数据

 

12、事务原理和实战

目录

章节

认识事务

认识事务

事务控制语句

1、开启事务2、事务提交3、事务回滚

事务的实现方式

1、原子性2、一致性3、隔离性4、持久性

purge thread线程

purge thread线程

事务统计QPS与TPS

1、QPS2、TPS

事务隔离级别

1、隔离级别2、查看隔离级别3、设置隔离级别4、不同隔离级别下会产生什么隔离效果

事务组提交group commit

组提交

事务两阶段提交

两阶段提交

MVCC多版本并发控制

1、MVCC原理2、MVCC案例

 

13、锁的原理和应用

目录

章节

认识锁

1、锁的作用2、加锁的过程3、锁对象:事务

innodb行锁

1、行锁类型2、共享锁(S锁)3、排他锁(X锁)

索引对行锁粒度的影响

1、行锁粒度有哪些2、在RC隔离级别下不同索引产生的锁的范围3、RR隔离级别下不同索引产生锁的范围

FTWRL全局读锁

FTWRL全局读锁

innodb表锁

innodb表锁

innodb意向锁与MDL锁

1、意向锁2、意向锁作用3、意向锁冲突情况4、MDL锁

自增锁

自增锁

插入意向锁

插入意向锁

死锁

1、什么是死锁2、相关参数3、避免死锁4、锁的状态

两阶段锁协议

两阶段锁协议

 

14、 行锁范围_加锁分析_有点复杂

目录

章节

1 前提

1.1 知识储备

1.2 锁的相关背景:

1.3 行锁粒度有哪些

1.4 加锁的规则

1.5索引在范围查询

1.6 数据准备

 2. 案例一: 等值查询间隙锁

2.1 效果

2.2 原理

 3. 案例二:非唯一索引等值锁

 3.1 效果

 3.2 说明

 4. 案例二:非唯一索引等值锁

 4.1 效果

 4.2 原理

 5. 案例二:非唯一索引等值锁

 5.1 效果

 5.2 原理

 6 案例三:主键索引范围锁

 6.1 效果

 6.2 原理

 7. 案例三:主键索引范围锁

 7.1 效果

 7.2 原理

8.  案例四:非唯一索引范围锁

 8.1 效果

 8.2 原理

 

15、慢查询原理和实战_快速优化方法_优化工具

目录

章节

1. 系统状态

show status

2. 慢查询

·        2.1 相关参数

·        2.2 清理慢日志

·        2.3 慢查询开启

·        2.4 简单示例

·        2.5 数据准备

3. mysqldumpslow

3.1 语法3.2 常见用法

4. pt-query-digest

4.1 安装4.2 语法选项4.3 报告解读4.4 用法示例

5. 优化工具(soar)

5.1 安装配置5.2 添加数据库5.3 语句优化

 

16、pt-query-digest_详细使用方法

 

1、pt介绍

1.1. 说明

1.2. 安装

2、语法选项

2.1 所有参数

2.2 常见参数

2.3 事件和属性

2.4 分组

2.5 过滤

2.6 排序

2.7 输出选项

2.8 DSN(数据源)选项

3、pt分析慢日志

3.1 事件属性

3.2 分析报告

 

3.2.1 第一部分:总体概况说明

3.2.2 第二部分:查询SQL概况说明

3.3.3 使用场景

4、pt分析通用日志(了解)

4.1 属性

4.2 分析报告

4.3 使用场景

5、pt分析binlog(了解)

 

5.1 属性

5.2 使用场景

6、pt分析processlist

线程分析

7、将数据保存到表

7.1 查询&审计转存到表

7.2 查询分析指标转存到表

 

 

17、备份恢复原理和实战_逻辑备份_物理备份_金融行业备份还原脚本

目录

章节

1.生产中备份方式

1.1 物理备份与逻辑备份1.2 联机与脱机备份1.3 完整备份与增量备份1.4 常用命令

2.mysqldump备份

2.1 相关参数2.2 备份所有数据库2.3 备份指定数据库2.4 备份指定表2.6 只导出结构2.7 只导出数据2.8 --tab(生成文本,类似load)2.8 mysqldump原理2.9 binlog异步备份2.10 利用mysqldump全备及binlog恢复数据

3.xtrabackup

3.1 Xtrabackup安装3.2 原理3.2 备份过程3.4 恢复原理3.3 相关参数3.4 xtrabackup相关文件3.5 备份示例3.6 还原示例

4.binlog备份和恢复(数据库恢复)

4.1 找到恢复时间点4.2 增量恢复

5. 生产环境的备份恢复实战

5.1 实施部署5.1.1 环境清单5.1.2 备份目的5.1.3 备份说明5.1.4 实施步骤5.1.5 全备脚本5.1.6 差异备份脚本5.2 实施部署备份还原5.2.1 Xtraback还原全量/差异备份5.2.2 故障点数据恢复5.2.3 增量恢复

 

18、主从复制,gtid,并行复制_半同步复制_实操案例_常用命令_故障处理

目录

章节

1.认识主从复制

1.1 主从复制原理深入讲解1.2 主从复制相关参数1.3.主从复制架构部署1.4从库状态详解1.5 .过滤复制

2 .gtid复制

2.1 什么是GTID?2.2 GTID主从配置2.5 gtid维护2.4 GTID的特点2.3 工作原理2.4 gtid相关状态行和变量

3、基于gtid的逻辑备份

--skip-gtids

--include-gtids

--exclude-gtids

实验

1. 重置gtid

2. 生成gtid

3. 备份_skip_include_exclude_gtids

4. 恢复测试

4. 增强半同步复制

4.1 异步复制4.2 半同步复制4.3 增强半同步复制4.4 配置增强半同步

5. 案例

5.1 主库删除操作导致sql线程关闭案例5.2 主从复制中断解决方案及案例5.3 延迟复制5.4 主库drop误操作利用延迟复制恢复案例

6 常用命令

6.1 启动线程6.2 关闭线程6.3 查看

6.4 指定时间点恢复6.5 重置6.6 主从数据一致性校验

 

19、组提交_并行复制

目录

章节

1、两阶段提交

1.1 两阶段提交过程

1.2 异常处理

1.3 性能影响

2、组提交

 

2.1 组提交说明

2.2 组提交图解

2.3 组提交相关参数

2.4 性能影响

 

3、并行复制

3.1 延迟的原因

3.2 组提交方式

3.3 MySQL 5.6并行复制原理

3.4 MySQL 5.7并行复制原理

3.5 并行复制设置

3.6 查看并行复制

 

20、MySQL高可用和读写分离架构_MHA

目录

章节

MHA

介绍

架构和相关组件

架构和相关组件

工作流程

工作流程

MHA高可用架构部署

1、环境准备2、软件安装3、创建软链接4、配置各节点互信5、节点免密验证6、mha管理用户7、配置文件8、状态检查9、开启MHA

主库宕机故障模拟及处理

主库宕机故障模拟及处理

1、switchover正常切换

2、failover故障转移

MHA VIP自动切换

VIP自动切换

binlog服务器

MHA主从数据自动补足

binlog_server配置及使用

 

21、MySQL高可用和读写分离架构_atlas

目录

章节

Atlas读写分离高性能架构

介绍

安装配置

安装配置

配置注解

配置注解

启动和关闭

启动和关闭

读写分离架构应用

读写分离架构应用

创建应用用户

创建应用用户

Atlas在线管理

Atlas在线管理

读写分离避坑指南

读写分离避坑指南

 

22、MySQL分库分表_原理实战

目录

章节

1.MyCAT分布式架构入门及双主架构

1.1 主从架构1.2 MyCAT安装1.3 启动和连接1.4 配置文件介绍

2.MyCAT读写分离架构

2.1 架构说明2.2 创建用户2.3 schema.xml2.4 连接说明2.5 读写测试2.6 当前是单节点

3.MyCAT高可用读写分离架构

3.1 架构说明3.3 schema.xml(配置)3.4 文件详解3.4.1 schema标签3.4.2 table标签3.4.3 dataNode标签3.4.4 dataHost3.4 读写测试3.5 故障转移

4.MyCAT垂直分表

4.1 架构4.2 新建表4.3 配置mycat4.4 验证

6. MyCAT水平分表-取模分片

取模分片

7. MyCAT水平分表-枚举分片

枚举分片

字符枚举配置

执行计划的分析

8. MyCAT全局表与ER表

全局与ER表

8.1 全局表

8.1.1 特性8.1.2 建表8.1.3 配置8.1.4 验证8.1.5 分析总结(执行计划)

8.2 ER表

8.2.1 特性8.2.2 建表8.2.3 配置8.2.4 测试验证,子表是否跟随父表记录分片8.2.5 分析总结(执行计划)

 

23、基准性能测试_sysbench

目录

章节

1. sysbench

1.1 用途1.2 安装1.3 版本1.4 查看帮助1.5 测试过程阶段

2 CPU 性能测试

2.1 测试原理2.2 查看帮助2.3 测试

3. 内存性能测试

3.1 查看帮助信息3.2 测试过程

4.磁盘性能基准测试

4.1 查看帮助4.2 生成文件(prepare)4.3 测试文件io(run)4.4 结果分析4.5 清除文件(cleanup)

5. 线程测试

5.1 查看帮助信息5.2 测试过程

6. MySQL基准测试

6.1 语法参数6.2 生成数据6.3 测试(读)6.4 测试(写)6.5 清理数据

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3