开发者学堂课程【MySQL 高级应用 - 索引和锁:课程简介】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/598/detail/8578
课程简介
目录:
一、mysql 的架构介绍
二、索引优化分析
三、查询截取分析
四、MySQL 锁机制
五、主从复制
一、mysql 的架构介绍
1、MySQL 简介
主要讲解高级 MYSQL,里面涉及 mysql 内核、sql 优化攻城狮、mysql 服务器的优化、各种参数常量设定、查询语句优化、主从复制、软硬件升级、容灾备份、sql 编程
2、MySQLLinux 版的安装
(1)下载地址
(2)检查当前系统是否安装过 mysql
(3)安装 mysql 服务端
(4)查看 mysql 安装时创建的 mysql 用户和 mysql 组
(5)mysql 服务的启+停
(6)mysql 服务启动后,开始链接
(7)自启动 mysql 服务
(8)修改配置文件位置
(9)修改字符集和数据存储路径
(10)mysql 的安装位置,在 linux 下查看安装目录 ps-eflgrep mysql
3、MySQL 配置文件
(1)二进制日志 log-bin,主从复制
(2)错误日志 log-error,默认时关闭的,记录严重的警告和错误信息
(3)查询日志 log,默认关闭,记录查询的 sql 语句,如果开启会减低 mysql 的整体性
(4)数据文件
对应两个系统 windows、linux
数据文件对应 frm文件、myd文件、myi文件
(5)如何配置
Windows,my.ini. 文件
Linux,/etc/my.cnf 文件
4、MySQL 逻辑架构介绍
(1)总体概览
(2)查询说明
5、MySQL 存储引擎
(1)查看命令
(2)MyISAM 和 InnoDB
二、索引优化分析
这章节是本次课程的重中之重,JAVA 数据库内容主要是增删改查,如果收到报站系统运行速度变慢,最可能的情况就是 SQL 语句未用到索引,或者是 SQL 语句不规范,或者 dba 已经建好索引了,但是没有用上。此时就需要索引优化了。
1、性能下降 SQL 慢 执行时间长 等待时间长的主要原因
(1)查询语句写的不好
(2)索引失效包含单值、符合
(3)关联查询太多 join (设计缺陷或不得已的需求)
(4)服务器调优及各个参数设置(缓冲、线程数等)
2、常见通用的 Join 查询
(1)SQL 执行顺序:手写、机读、总结
(2)join 图
(3)建表 SQL
(4)7中 JOIN
3、索引简介
4、性能分析
5、索引优化
三、查询截取分析
当系统运行变慢时,需要找到有问题的 SQL 语句,定位分析 sQL 语句并进行改造。
1、查询优化
2、慢查询日志
3、批量数据脚本
4、Show Profile
5、全局查询日志
四、MySQL 锁机制
1、概述
主要介绍三种相关的锁:表锁、行锁、页锁
五、主从复制
1、一主一从常见配置
2、复制的最大问题
(1)延时
3、复制的基本原则
(1)每个 slave 只有一个 master
(2)每个 slave 只能有一个唯一的服务器 ID
(3)每个 master 可以有多个 salve