MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》
最近工作的内容涉及MySQL运维内容,陆陆续续读了几本相关的书,其中一本是《MySQL管理之道:性能调优、高可用与监控》。
内容涵盖性能调优(包括sql优化等)、备份、高可用,以及读写分离等,对于普及MySQL基础非常有用。记录一下,以便于后面查阅。
附目录:
1章 MariaDB架构与历史1
1.1 MariaDB的介绍 1
1.2 MariaDB和MySQL的兼容性 2
1.3 MariaDB 10.0新增的功能 3
1.3.1 更多的存储引擎 4
1.3.2 速度的提升 5
1.3.3 扩展和新功能 5
1.4 如何将MySQL迁移至MariaDB 8
1.5 使用二进制包安装MariaDB 10.1企业版 10
1.6 总结 12
2章 MySQL 5.7与MariaDB 10.1的新特性 13
2.1 性能提升 14
2.2 安全性的提升 15
2.2.1 默认开启SSL 15
2.2.2 不再明文显示用户密码 20
2.2.3 sql_mode的改变 20
2.3 In[0no0]DB存储引擎的提升 22
2.3.1 更改索引[0名0]字时不[0会0]锁表 22
2.3.2 在线DDL修改varchar字段属性时不锁表 23
2.3.3 In[0no0]DB/MyisAM存储引擎支持中文全文索引 26
2.3.4 In[0no0]DB Buffer Pool预热改进 29
2.3.5 在线调整in[0no0]db_Buffer_Pool_Size不用重启mysql进程 31
2.3.6 回收(收缩)undo log回滚日志物理文件空间 32
2.3.7 In[0no0]DB提供通用表空间 33
2.3.8 创建In[0no0]DB[0独0]立表空间指定存放路径 34
2.3.9 迁移单[0独0]一张In[0no0]DB表到远程服务器 35
2.3.10 修改In[0no0]DB redo log事务日志文件[0大0]小更人性化 36
2.3.11 死锁可以打印到错误日志里 37
2.3.12 支持In[0no0]DB只读事务 37
2.3.13 支持In[0no0]DB表空间数据碎片整理 38
2.4 JSON格式的支持 39
2.4.1 支持用JSON格式存储数据 39
2.4.2 动态列支持用JSON格式存储数据 41
2.5 支持虚拟列(函数索引) 44
2.5.1 MySQL 5.7支持函数索引 44
2.5.2 MariaDB 10.0/10.1支持函数索引 45
2.6 功能提升 46
2.6.1 支持杀死慢的SQL语句 46
2.6.2 支持一张表有多个INSERT/DELETE/UPDATE触发器 48
2.6.3 引入线程池(Thread Pool)技术 49
2.6.4 提供审计日志功能 52
2.6.5 支持explain update 53
2.6.6 在MySQL 5.7 中按Ctrl+C组合键不[0会0]退出客户端 54
2.6.7 可将错误日志打印到系统日志文件中 54
2.6.8 支持创建角色 55
2.6.9 支持TokuDB存储引擎 56
2.7 [0优0]化器改进 59
2.7.1 针对子查询select采用半连接[0优0]化 59
2.7.2 [0优0]化派生子查询 62
2.7.3 [0优0]化排序limit 65
2.7.4 [0优0]化IN条件表达式 66
2.7.5 [0优0]化union [0all0] 69
2.7.6 支持索引下推[0优0]化 70
2.7.7 支持Multi Range Read索引[0优0]化 72
2.7.8 支持Batched Key Access(BKA)索引[0优0]化 75
2.7.9 支持Hash Join索引[0优0]化 77
2.8 半同步复制改进 78
2.8.1 半同步复制简介 78
2.8.2 半同步复制的安装配置 79
2.8.3 参数说明 79
2.8.4 功能测试 80
2.8.5 性能测试 84
2.9 GTID复制改进 87
2.9.1 GTID复制概述 87
2.9.2 在MySQL 5.6的GTID模式下同步复制报错不能跳过的解决方[0法0] 90
2.9.3 MySQL 5.7中GTID复制的改进 93
2.9.4 GTID复制的陷阱 95
2.9.5 MariaDB 10.1中GTID复制的改进 96
2.9.6 GTID的使用方式不同 97
2.10 MySQL 5.6/5.7从库崩溃安全恢复 98
2.11 MariaDB 10.0/10.1从库崩溃安全恢复 99
2.12 slave从库多线程复制 99
2.13 slave支持多源复制 101
2.14 MySQL 5.7设置同步复制过滤不用重启mysql服务进程 103
2.15 小结 104
3章 故障诊断 105
3.1 影响MySQL性能的因素 105
3.2 系统性能[0评0]估标准 106
3.2.1 影响Linux服务器性能的因素 106
3.2.2 系统性能[0评0]估指标 107
3.2.3 开源监控和[0评0]估工具介绍 109
3.3 故障与处理 112
3.3.1 连接数过多导致程序连接报错的原因 112
3.3.2 记录子查询引起的宕机 117
3.3.3 诊断事务量突高的原因 120
3.3.4 谨慎设置binlog_format=MIXED 123
3.3.5 未设置swap分区导致内存耗尽,主机死机 127
3.3.6 MySQL故障切换之事件调度器注意事项 128
3.3.7 人工误删除In[0no0]DB ibdata数据文件,如何恢复 130
3.3.8 update忘加where条件误操作恢复(模拟Oracle闪回功能) 132
3.3.9 delete忘加where条件误操作恢复(模拟Oracle闪回功能) 141
4章 同步复制报错故障处理 145
4.1 常见的3种故障 145
4.1.1 在master上删除一条记录时出现的故障 146
4.1.2 主键重复 147
4.1.3 在master上更新一条记录,而slave上却找不到 148
4.2 特殊情况:slave的中继日志relay-log损坏 149
4.3 人为失误 151
4.4 避免在master上执行[0大0]事务 152
4.5 slave_exec_mode参数可自动处理同步复制错误 153
4.6 如何验证主从数据一致 154
4.7 binlog_ig[0no0]re_db引起的同步复制故障 156
4.8 MySQL5.5.19/20同步一个Bug 157
4.9 恢复slave从机上的某几张表的简要方[0法0] 159
4.10 如何干净地清除slave同步信息 160
5章 性能调优 162
5.1 表设计 162
5.2 字段类型的选取 166
5.2.1 数值类型 167
5.2.2 字符类型 172
5.2.3 时间类型 174
5.2.4 小技巧:快速修改表结构 181
5.2.5 pt-online-schema-change在线更改表结构 185
5.2.6 MySQL5.6在线DDL更改表测试 191
5.3 采用合适的锁机制 194
5.3.1 表锁的演示 194
5.3.2 行锁的演示 197
5.3.3 InnoDB引擎与MyISAM引擎的性能对比 199
5.4 选择合适的事务隔离级别 201
5.4.1 事务的概念 201
5.4.2 事务的实现 202
5.4.3 事务隔离级别介绍 204
5.5 SQL优化与合理利用索引 210
5.5.1 如何定位执行很慢的SQL语句 210
5.5.2 SQL[0优0]化案例分析 211
5.5.3 合理使用索引 221
5.6 my.cnf配置文件调[0优0] 231
5.6.1 per_thread_buffers[0优0]化 231
5.6.2 global_buffers[0优0]化 233
5.6.3 Query Cache在不同环境下的使用 234
5.6.4 tuning-primer.sh性能调试工具的使用 238
5.6.5 72 GB内存的my.cnf配置文件 241
5.6.6 谨慎使用分区表功能 244
5.7 MySQL5.6同步复制新特性详解 246
6章 备份与恢复 256
6.1 冷备份 257
6.2 逻辑备份 257
6.2.1 mysqldump增加了一个重要参数 258
6.2.2 取代mysqldump的新工具mydumper 259
6.2.3 逻辑备份全量、增量备份脚本 262
6.3 热备份与恢复 263
7章 高可用MHA架构集群管理 268
7.1 MHA架构简介 268
7.1.1 master自动监控和故障转移 270
7.1.2 手工处理master故障转移 270
7.1.3 在线平滑切换 270
7.2 MHA配置安装 270
7.3 MHA故障切换演示 277
7.3.1 场景一:master自动监控和故障转移 277
7.3.2 场景二:master手工故障转移 285
7.3.3 场景三:在线平滑切换 285
7.4 MHA高可用架构总结 290
8章 MySQL架构演进:“一主多从、读/写分离” 293
8.1 实现读/写分离的两种方式 293
8.2 主从同步延迟的判断标准 297
8.3 HAProxy感[0知0]MySQL主从同步延迟 300
8.4 读/写分离MariaDB MaxScale架构搭建演示 307
8.4.1 配置环境及安装介绍 307
8.4.2 基于connect方式的测试 311
8.4.3 基于statement方式(SQL解析)的测试 312
8.4.4 MaxScale延迟检测 313
8.5 读/写分离OneProxy介绍及架构搭建演示 315
8.5.1 OneProxy简介 316
8.5.2 OneProxy的功能及安装介绍 316
8.5.3 OneProxy读/写分离接入限制 320
9章 Codership Galera Cluster 集群架构搭建与管理 322
9.1 Codership Galera Cluster的特性和[0优0]缺点 323
9.2 Codership Galera Cluster的局限性 323
9.3 Codership Galera Cluster的工作原理 324
9.4 Codership Galera Cluster的配置 328
9.4.1 Codership Galera Cluster的配置环境及安装 328
9.4.2 功能测试 332
9.5 HAProxy结合Galera Cluster实现无单点秒级故障切换 337
10章 OneProxy分库分表的搭建与管理 345
10.1 OneProxy 分库分表的搭建 346
10.1.1 配置与安装 346
10.1.2 前端PHP/Java程序接入事项 349
10.2 OneProxy分库分表接入限制 349
10.3 OneProxy分库分表基本测试 351
10.3.1 分库分表的功能测试 351
10.3.2 分库分表的二级分区测试 354
10.3.3 分库分表的聚合测试 358
10.3.4 分库分表的插入测试 359
10.3.5 分库分表不支持跨库join的测试 360
10.3.6 分库分表不支持分布式事务的测试 361
10.3.7 分库分表不支持存储过程的测试 361
10.4 搭建OneProxy高可用故障切换HA 362
10.5 OneProxy 黑[0名0]单SQL防火墙搭建测试 363
11章 Lepus慢日志分析平台搭建与维护 367
11.1 Lepus基础组件的安装 367
11.2 安装percona-toolkit工具 370
MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》的更多相关文章
- Redis基础用法、高级特性与性能调优以及缓存穿透等分析
一.Redis介绍 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用.Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hype ...
- 学会使用MySQL的Explain执行计划,SQL性能调优从此不再困难
上篇文章讲了MySQL架构体系,了解到MySQL Server端的优化器可以生成Explain执行计划,而执行计划可以帮助我们分析SQL语句性能瓶颈,优化SQL查询逻辑,今天就一块学习Explain执 ...
- 【原创】大数据基础之Hive(5)性能调优Performance Tuning
1 compress & mr hive默认的execution engine是mr hive> set hive.execution.engine;hive.execution.eng ...
- linux下改动内核參数进行Tcp性能调优 -- 高并发
前言: Tcp/ip协议对网络编程的重要性,进行过网络开发的人员都知道,我们所编写的网络程序除了硬件,结构等限制,通过改动Tcp/ip内核參数也能得到非常大的性能提升, 以下就列举一些Tcp/ip内核 ...
- 【GoLang】golang垃圾回收 & 性能调优
golang垃圾回收 & 性能调优 参考资料: 如何监控 golang 程序的垃圾回收_Go语言_第七城市 golang的垃圾回收(GC)机制 - 两只羊的博客 - 博客频道 - CSDN.N ...
- MySQL管理之道,性能调优,高可用与监控(第二版)pdf下载
MySQL管理之道,性能调优,高可用与监控(第二版) 书中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和新知识的拓展,同时也针对运维人员.DBA等相关工作者会遇到的有代表性的疑难问题给出了 ...
- MySQL管理之道:性能调优、高可用与监控内置脚本
MySQL管理之道:性能调优.高可用与监控内置脚本 随书附送脚本 keepalive配置文件和脚本开源工具pssh批量管理服务器(python) 下载地址 http://files.cnblogs.c ...
- MySQL管理之道:性能调优、高可用与监控》迷你书
MySQL管理之道:性能调优.高可用与监控>迷你书 MYSQL5.5.X主要改进 1.默认使用innodb存储引擎2.充分利用CPU多核处理能力3.提高刷写脏页数量和合并插入数量,改善I/O4. ...
- Database基础(六):实现MySQL读写分离、MySQL性能调优
一.实现MySQL读写分离 目标: 本案例要求配置2台MySQL服务器+1台代理服务器,实现MySQL代理的读写分离: 用户只需要访问MySQL代理服务器,而实际的SQL查询.写入操作交给后台的2台M ...
随机推荐
- MFC的一些常用操作
一.添加消息 MFC和win32不同的一点是MFC采用的是消息的映射机制,即每一个消息都和处理的函数做了映射,我们可以通过查找的方式来得到消息的对应的函数,当然MFC提供了一个非常简便的方法,我们通过 ...
- 5.Nginx的session一致性(共享)问题配置方案1
1:Session共享 为什么要实现共享,如果你的网站是存放在一个机器上,那么会话数据就在这台机器,但是如果你使用了负载均衡把请求分发到不同的机器呢?这个时候会话 id在客户端是没有问题的,但是如果用 ...
- angular打印功能实现方式
目前主流的前端打印方式有两种:一种是使用浏览器打印功能直接打印页面,另一种是调用本地控件实现.浏览器打印功能单一,不适用于复杂的业务表单,而打印控件可以设计打印模板,实现复杂表单的打印,十分适合复杂的 ...
- TensorFlow可以在终端和通过终端打开的PyCharm中运行,不能在直接打开的PyCharm中运行
然后看运行窗口的出错信息,点击最右边的view,发现缺少个文件,如代码所示 Traceback (most recent call last): File "/usr/local/lib/p ...
- java-web服务器-tomcat
HTTP服务器: 一.定义: 1)是一个安装在服务端的[资源文件调度软件] 二.作用: 1)自动解析接收的[请求协议包]内容 2)自动在服务端计算机上定位[被访问的文件] 3)自动创建[Http响应协 ...
- 【SDOI2018】反回文串(【ARC064 F】Rotated Palindromes 加强版)
题意 给你一个正整数 \(n\),求有多少字符集为 \(1\) 到 \(k\) 之间整数的字符串,使得该字符串可以由一个长度为 \(n\) 的回文串循环移位得到. ARC原题 \(100\%\) 的数 ...
- 记录一下Web开发环境搭建 Eclipse-Java EE 篇
转自https://www.cnblogs.com/yangyxd/articles/5615965.html Web开发环境搭建 Eclipse-Java EE 篇 [原创内容,转载注名出处] 1. ...
- Java发送POST请求,参数为JSON格式,并接收返回JSON数据
原文地址:https://blog.csdn.net/qq_26975307/article/details/82713725 /** * 发送post请求 * @param url 路径 * @pa ...
- MariaDB基本命令
--查看当前日期select current_date();--查看当前时间select current_time();--查看当前日期.时间select now();--查看当前用户select u ...
- php类知识点滴---类的实例化,构造函数,继承初步
实例化类----黑科技用法,通过字符串来实例化 class coach { public function __construct() { echo "欢迎光临北武堂"." ...