深入浅出mysql 第二版 pdf
分享到:
深入浅出MySQL pdf想必很多面向MYSQL数据库开发的朋友接触的不少吧。对于新手也是很好的入门资源。本书主要从数据库的基础、开发、优化、管理4方面对MySQL进行了讲解,其中每一部分都独立成篇,每一篇又包括多个章节。基础篇主要适合于MySQL的初学者,主要包括MySQL的安装与配置、SQL基础、MySQL支持的数据类型、MySQL中的运算符、常用函数、图形化工具的使用等内容。开发篇主要适合于MySQL的设计和开发人员,主要包括表类型(存储引擎)的选择、选择合适的数据类型、字符集、索引的设计和使用、视图、存储过程和函数、触发器、事务控制和锁定语句、SQL中的安全问题、SQL Mode及相关问题等内容。本书面向实用,内容覆盖广泛,讲解由浅入深,适合于各个层次的读者。所以,想要从头学习MySQL数据库的朋友,赶紧下载使用吧!
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。[1]
表头(header): 每一列的名称;
列(row): 具有相同数据类型的数据的集合;
行(col): 每一行用来描述某个人/物的具体信息;
值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
键(key): 表中用来识别某个特定的人物的方法, 键的值在当前列中具有唯一性。
第1章 MySQL的安装与配置
1.1 MySQL的下载
1.1.1 在Windows平台下下载MySQL
1.1.2 在Linux平台下下载MySQL
1.2 MySQL的安装
1.2.1 在Windows平台下安装MySQL
1.2.2 在Linux平台下安装MySQL
1.3 MySQL的配置
1.3.1 Windows平台下配置MySQL
1.3.2 Linux平台下配置MySQL
1.4 启动和关闭MySQL服务
1.4.1 在Windows平台下启动和关闭MySQL服务
1.4.2 在Linux平台下启动和关闭MySQL服务
1.5 小结
第2章 SQL基础
2.1 SQL简介
2.2 (My)SQL使用入门
2.2.1 SQL分类
2.2.2 DDL语句
2.2.3 DML语句
2.2.4 DCL语句
2.3 帮助的使用
2.3.1 按照层次看帮助
2.3.2 快速查阅帮助
2.3.3 常用的网络资源
2.4 查询元数据信息
2.5 小结
第3章 MySQL支持的数据类型
3.1 数值类型
3.2 日期时间类型
3.3 字符串类型
3.3.1 CHAR和VARCHAR类
3.3.2 BINARY和VARBINARY类型
3.3.3 ENUM类型
3.3.4 SET类型
3.4 小结
第4章 MySQL中的运算符
4.1 算术运算符
4.2 比较运算符
4.3 逻辑运算符
4.4 位运算符
4.5 运算符的优先级
4.6 小结
第5章 常用函数
5.1 字符串函数
5.2 数值函数
5.3 日期和时间函数
5.4 流程函数
5.5 其他常用函数
5.6 小结
第6章 图形化工具的使用
6.1 MySQL Workbench
6.1.1 SQL开发
6.1.2 数据建模
6.1.3 服务器管理
6.1.4 MySQL Utilities
6.2 phpMyAdmin
6.2.1 数据库管理
6.2.2 数据库对象管理
6.2.3 权限管理
6.2.4 导入导出数据
6.3 小结
第二部分 开发篇
第7章 表类型(存储引擎)的选择
7.1 MySQL存储引擎概述
7.2 各种存储引擎的特性
7.2.1 MyISAM
7.2.2 InnoDB
7.2.3 MEMORY
7.2.4 MERGE
7.2.5 TokuDB
7.3 如何选择合适的存储引擎
7.4 小结
第8章 选择合适的数据类型
8.1 CHAR与VARCHAR
8.2 TEXT与BLOB
8.3 浮点数与定点数
8.4 日期类型选择
8.5 小结
第9章 字符集
9.1 字符集概述
9.2 Unicode简述
9.3 汉字及一些常见字符集
9.4 怎样选择合适的字符集
9.5 MySQL支持的字符集简介
9.6 MySQL字符集的设置
9.6.1 服务器字符集和校对规则
9.6.2 数据库字符集和校对规则
9.6.3 表字符集和校对规则
9.6.4 列字符集和校对规则
9.6.5 连接字符集和校对规则
9.7 字符集的修改步骤
9.8 小结
第10章 索引的设计和使用
10.1 索引概述
10.2 设计索引的原则
10.3 BTREE索引与HASH索引
10.4 小结
第11章 视图
11.1 什么是视图
11.2 视图操作
11.2.1 创建或者修改视图
11.2.2 删除视图
11.2.3 查看视图
11.3 小结
第12章 存储过程和函数
12.1 什么是存储过程和函数
12.2 存储过程和函数的相关操作
12.2.1 创建、修改存储过程或者函数
12.2.2 删除存储过程或者函数
12.2.3 查看存储过程或者函数
12.2.4 变量的使用
12.2.5 定义条件和处理
12.2.6 光标的使用
12.2.7 流程控制
12.2.8 事件调度器
12.3 小结
第13章 触发器
13.1 创建触发器
13.2 删除触发器
13.3 查看触发器
13.4 触发器的使用
13.5 小结
第14章 事务控制和锁定语句
14.1 LOCK TABLE和UNLOCK TABLE
14.2 事务控制
14.3 分布式事务的使用
14.3.1 分布式事务的原理
14.3.2 分布式事务的语法
14.3.3 存在的问题
14.4 小结
第15章 SQL中的安全问题
15.1 SQL注入简介
15.2 应用开发中可以采取的应对措施
15.2.1 PrepareStatement+Bind-Variable
15.2.2 使用应用程序提供的转换函数
15.2.3 自己定义函数进行校验
15.3 小结
第16章 SQL Mode及相关问题
16.1 MySQL SQL Mode简介
16.2 SQL Mode的常见功能
16.3 常用的SQL Mode
16.4 SQL Mode在迁移中如何使用
16.5 小结
第17章 MySQL分区
17.1 分区概述
17.2 分区类型
17.2.1 Range分区
17.2.2 List分区
17.2.3 Columns分区
17.2.4 Hash分区
17.2.5 Key分区
17.2.6 子分区
17.2.7 MySQL分区处理NULL值的方式
17.3 分区管理
17.3.1 RANGE&LIST分区管理
17.3.2 HASH&KEY分区管理
17.4 小结
第三部分 优化篇
第18章 SQL优化
18.1 优化SQL语句的一般步骤
18.1.1 通过show status命令了解各种SQL的执行频率
18.1.2 定位执行效率较低的SQL语句
18.1.3 通过EXPLAIN分析低效SQL的执行计划
18.1.4 通过show profile分析SQL
18.1.5 通过trace分析优化器如何选择执行计划
18.1.6 确定问题并采取相应的优化措施
18.2 索引问题
18.2.1 索引的存储分类
18.2.2 MySQL如何使用索引
18.2.3 查看索引使用情况
18.3 两个简单实用的优化方法
18.3.1 定期分析表和检查表
18.3.2 定期优化表
18.4 常用SQL的优化
18.4.1 大批量插入数据
18.4.2 优化INSERT语句
18.4.3 优化ORDER BY语句
18.4.4 优化GROUP BY语句
18.4.5 优化嵌套查询
18.4.6 MySQL如何优化OR条件
18.4.7 优化分页查询
18.4.8 使用SQL提示
18.5 常用SQL技巧
18.5.1 正则表达式的使用
18.5.2 巧用RAND()提取随机行
18.5.3 利用GROUP BY的WITH ROLLUP子句
18.5.4 用BIT GROUP FUNCT IONS做统计
18.5.5 数据库名、表名大小写问题
18.5.6 使用外键需要注意的问题
18.6 小结
第19章 优化数据库对象
19.1 优化表的数据类型
19.2 通过拆分提高表的访问效率
19.3 逆规范化
19.4 使用中间表提高统计查询速度
19.5 小结
第20章 锁问题
20.1 MySQL锁概述
20.2 MyISAM表锁
20.2.1 查询表级锁争用情况
20.2.2 MySQL表级锁的锁模式
20.2.3 如何加表锁
20.2.4 并发插入(Concurrent Inserts)
20.2.5 MyISAM的锁调度
20.3 InnoDB锁问题
20.3.1 背景知识
20.3.2 获取InnoDB行锁争用情况
20.3.3 InnoDB的行锁模式及加锁方法
20.3.4 InnoDB行锁实现方式
20.3.5 Next-Key锁
20.3.6 恢复和复制的需要,对InnoDB锁机制的影响
20.3.7 InnoDB在不同隔离级别下的一致性读及锁的差异
20.3.8 什么时候使用表锁
20.3.9 关于死锁
20.4 小结
第21章 优化MySQL Server
21.1 MySQL体系结构概览
21.2 MySQL内存管理及优化
21.2.1 内存优化原则
21.2.2 MyISAM内存优化
21.2.3 InnoDB内存优化
21.2.4 调整用户服务线程排序缓存区
21.2 InnoDB log机制及优化
21.3.1 InnoDB重做日志
21.3.2 innodb_flush_log_at_trx_commit的设置
21.3.3 设置log file size,控制检查点
21.3.4 调整innodb_log_buffer_size
21.2 调整MySQL并发相关的参数
21.4.1 调整max_connections,提高并发连接
21.4.2 调整back_log
21.4.3 调整table_open_cache
21.4.4 调整thread_cache_size
21.4.5 innodb_lock_wait_timeout的设置
21.5 小结
第22章 磁盘I/O问题
22.1 使用磁盘阵列
22.1.1 常见RAID级别及其特性
22.1.2 如何选择RAID级别
22.2 虚拟文件卷或软RAID
22.3 使用Symbolic Links分布I/O
22.4 禁止操作系统更新文件的atime属性
22.5 用裸设备(Raw Device)存放InnoDB的共享表空间
22.6 调整I/O调度算法
22.7 RAID卡电池充放电问题
22.7.1 什么是RAID卡电池充放电
22.7.2 RAID卡缓存策略
22.7.3 如何应对RAID卡电池充放电带来的I/O性能波动
22.8 NUMA架构优化
22.9 小结
第23章 应用优化
23.1 使用连接池
23.2 减少对MySQL的访问
23.2.1 避免对同一数据做重复检索
23.2.2 使用查询缓存
23.2.3 增加CACHE层
23.3 负载均衡
23.3.1 利用MySQL复制分流查询操作
23.3.2 采用分布式数据库架构
23.4 其他优化措施
23.5 小结
第四部分 管理维护篇
第24章 MySQL高级安装和升级
24.1 Linux/UNIX平台下的安装
24.1.1 安装包比较
24.1.2 安装RPM包
24.1.3 安装二进制包
24.1.4 安装源码包
24.1.5 参数设置方法
24.2 源码包安装的性能考虑
24.2.1 去掉不需要的模块
24.2.2 只选择要使用的字符集
24.2.3 使用静态编译以提高性能
24.3 升级MySQL
24.4 MySQL降
24.5 小结
第25章 MySQL中的常用工具
25.1 mysql(客户端连接工具)
25.1.1 连接选项
25.1.2 客户端字符集选项
25.1.3 执行选项
25.1.4 格式化选项
25.1.5 错误处理选项
25.2 myisampack(MyISAM表压缩工具)
25.3 mysqladmin(MySQL管理工具)
25.4 mysqlbinlog(日志管理工具)
25.5 mysqlcheck(MyISAM表维护工具)
25.6 mysqldump(数据导出工具)
25.6.1 连接选项
25.6.2 输出内容选项
25.6.3 输出格式选项
25.6.4 字符集选项
25.6.5 其他常用选项
25.7 mysqlhotcopy(MyISAM表热备份工具)
25.8 mysqlimport(数据导入工具)
25.9 mysqlshow(数据库对象查看工具)
25.10 perror(错误代码查看工具)
25.11 replace(文本替换工具)
25.12 小结
第26章 MySQL日志
26.1 错误日志
26.2 二进制日志
26.2.1 日志的位置和格式
26.2.2 日志的读取
26.2.3 日志的删除
26.2.4 其他选项
26.3 查询日志
26.3.1 日志的位置和格式
26.3.2 日志的读取
26.4 慢查询日志
26.4.1 文件位置和格式
26.4.2 日志的读取
26.5 mysqlsla简介
26.6 小结
第27章 备份与恢复
27.1 备份/恢复策略
27.2 逻辑备份和恢复
27.2.1 备份
27.2.2 完全恢复
27.2.3 基于时间点恢复
27.2.4 基于位置恢复
27.3 物理备份和恢复
27.3.1 冷备份
27.3.2 热备份
27.4 表的导入导出
27.4.1 导出
27.4.2 导入
27.5 小结
第28章 MySQL权限与安全
28.1 MySQL权限管理
28.1.1 权限系统的工作原理
28.1.2 权限表的存取
28.1.3 账号管理
28.2 MySQL安全问题
28.2.1 操作系统相关的安全问题
28.2.2 数据库相关的安全问题
28.3 其他安全设置选项
28.3.1 old-passwords
28.3.2 safe-user-create
28.3.3 secure-auth
28.3.4 skip-grant-tables
28.3.5 skip-network
28.3.6 skip-show-database
28.4 小结
第29章 MySQL监控
29.1 如何选择一个监控方案
29.1.1 选择何种监控方式
29.1.2 如何选择适合自己的监控工具
29.2 常用网络监控工具
29.2.1 Cacti简介
29.2.2 Nagios简介
29.2.3 Zabbix简介
29.2.4 几种常见开源软件比较
29.3 Zabbix 部署
29.3.1 Zabbix Server软件安装
29.3.2 Zabbix Server配置与启动
29.3.3 配置Zabbix Web服务端
29.3.4 Zabbix Agent安装和配置
29.3.5 MPM插件介绍和部署
29.3.6 Zabbix Web端操作
29.4 小结
第30章 MySQL常见问题和应用技巧
30.1 忘记MySQL的root密码
30.2 如何处理MyISAM存储引擎的表损坏
30.2.1 方法一:使用myisamchk工具
30.2.2 方法二:使用SQL命令
30.3 MyISAM表超过4GB无法访问的问题
30.4 数据目录磁盘空间不足的问题
30.4.1 对于MyISAM存储引擎的表
30.4.2 对于InnoDB存储引擎的表
30.5 DNS反向解析的问题
30.6 mysql.sock丢失后如何连接数据库
30.7 同一台服务器运行多个MySQL数据库
30.8 客户端怎么访问内网数据库
30.8.1 方法一:使用SecureCRT客户端工具
30.8.2 方法二:使用MySQL Proxy工具
30.9 小结
第五部分 架构篇
第31章 MySQL复制
31.1 复制概述
31.1.1 复制中的各类文件
31.1.2 三种复制方式
31.1.3 复制的3种常见架构
31.2 复制搭建过程
31.2.1 异步复制
31.2.2 半同步复制(Semi-synchronous Replication)
31.3 主要复制启动选项
31.3.1 log-slave-updates
31.3.2 master-connect-retry
31.3.3 read-only
31.3.4 指定复制的数据库或者表
31.3.5 slave-skip-errors
31.4 日常管理维护
31.4.1 查看从库状态
31.4.2 主从库同步维护
31.4.3 从库复制出错的处理
31.4.4 log event entry exceeded max_allowed_packet的处理
31.4.5 多主复制时的自增长变量冲突问题
31.4.6 查看从库的复制进度
31.4.7 如何提高复制的性能
31.5 切换主从库
31.6 小结
第32章 MySQL Cluster
32.1 MySQL Cluster架构
32.2 MySQL Cluster的配置
32.2.1 MySQL Cluster的版本支持
32.2.2 管理节点配置步骤
32.2.3 SQL节点和数据节点的配置
32.3 开始使用Cluster
32.3.1 Cluster的启动
32.3.2 Cluster的测试
32.3.3 Cluster的关闭
32.4 维护Cluster
32.4.1 数据备份
32.4.2 数据恢复
32.4.3 日志管理
32.5 小结
第33章 高可用架构
33.1 MMM架构
33.2 MHA架构
33.3 安装部署MHA
33.3.1 安装MHA node(在所有的MySQL服务器上安装)
33.3.2 安装MHA Manager
33.3.3 配置SSH登录无密码验证
33.3.4 搭建主从复制环境
33.3.5 配置MHA
33.3.6 检查SSH的配置
33.3.7 检查整个复制环境状况
33.3.8 检查MHA Manager的状态
33.3.9 开启MHA Manager监控
33.3.10 查看启动日志
33.3.11 关闭MHA Manager监控
33.3.12 VIP配置
33.3.13 自动Failover
33.3.14 网络问题触发的Failover操作
33.3.15 手动Failover
33.3.16 在线进行切换
33.3.17 修复宕机的Master
33.4 小结
标识符
标识符用来命名一些对象, 如数据库、表、列、变量等, 以便在脚本中的其他地方引用。MySQL标识符命名规则稍微有点繁琐, 这里我们使用万能命名规则: 标识符由字母、数字或下划线(_)组成, 且第一个字符必须是字母或下划线。
对于标识符是否区分大小写取决于当前的操作系统, Windows下是不敏感的, 但对于大多数 linuxunix 系统来说, 这些标识符大小写是敏感的。
关键字: MySQL的关键字众多, 这里不一一列出, 在学习中学习。 这些关键字有自己特定的含义, 尽量避免作为标识符。
语句: MySQL语句是组成MySQL脚本的基本单位, 每条语句能完成特定的操作, 他是由 SQL 标准语句 + MySQL 扩展语句组成。
函数: MySQL函数用来实现数据库操作的一些高级功能, 这些函数大致分为以下几类: 字符串函数、数学函数、日期时间函数、搜索函数、加密函数、信息函数。
数字类型
整数: tinyint、smallint、mediumint、int、bigint
浮点数: float、double、real、decimal
日期和时间: date、time、datetime、timestamp、year
字符串类型
字符串: char、varchar
文本: tinytext、text、mediumtext、longtext
二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob
group
havding
order by
limit
在使用的时候必须按照这五个查询方法的顺序使用,否则语法不通过;即 where group having order by limit
标准的 SQL 的解析顺序为:
(1).FROM 子句, 组装来自不同数据源的数据
(2).WHERE 子句, 基于指定的条件对记录进行筛选
(3).GROUP BY 子句, 将数据划分为多个分组
(4).使用聚合函数进行计算(max avg min ...)
(5).使用 HAVING 子句筛选分组
(6).计算所有的表达式(limit)
禁用于商业用途!如果您喜欢《深入浅出MySQL》,请购买正版,谢谢合作。
爱学习,请到3322软件站查找资源自行下载!
1、下载并解压,得出pdf文件
2、如果打不开本文件,别着急,这时候请务必在3322软件站选择一款阅读器下载哦
3、安装后,再打开解压得出的pdf文件
4、以上都完成后,接下来双击进行阅读就可以啦,朋友们开启你们的阅读之旅吧。
方法二:
1、可以在手机里下载3322软件站中的阅读器和百度网盘
2、接下来直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
MySQL介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。[1]
MySQL的相关概念介绍
MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格:表头(header): 每一列的名称;
列(row): 具有相同数据类型的数据的集合;
行(col): 每一行用来描述某个人/物的具体信息;
值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
键(key): 表中用来识别某个特定的人物的方法, 键的值在当前列中具有唯一性。
深入浅出MYSQL目录
第一部分 基础篇第1章 MySQL的安装与配置
1.1 MySQL的下载
1.1.1 在Windows平台下下载MySQL
1.1.2 在Linux平台下下载MySQL
1.2 MySQL的安装
1.2.1 在Windows平台下安装MySQL
1.2.2 在Linux平台下安装MySQL
1.3 MySQL的配置
1.3.1 Windows平台下配置MySQL
1.3.2 Linux平台下配置MySQL
1.4 启动和关闭MySQL服务
1.4.1 在Windows平台下启动和关闭MySQL服务
1.4.2 在Linux平台下启动和关闭MySQL服务
1.5 小结
第2章 SQL基础
2.1 SQL简介
2.2 (My)SQL使用入门
2.2.1 SQL分类
2.2.2 DDL语句
2.2.3 DML语句
2.2.4 DCL语句
2.3 帮助的使用
2.3.1 按照层次看帮助
2.3.2 快速查阅帮助
2.3.3 常用的网络资源
2.4 查询元数据信息
2.5 小结
第3章 MySQL支持的数据类型
3.1 数值类型
3.2 日期时间类型
3.3 字符串类型
3.3.1 CHAR和VARCHAR类
3.3.2 BINARY和VARBINARY类型
3.3.3 ENUM类型
3.3.4 SET类型
3.4 小结
第4章 MySQL中的运算符
4.1 算术运算符
4.2 比较运算符
4.3 逻辑运算符
4.4 位运算符
4.5 运算符的优先级
4.6 小结
第5章 常用函数
5.1 字符串函数
5.2 数值函数
5.3 日期和时间函数
5.4 流程函数
5.5 其他常用函数
5.6 小结
第6章 图形化工具的使用
6.1 MySQL Workbench
6.1.1 SQL开发
6.1.2 数据建模
6.1.3 服务器管理
6.1.4 MySQL Utilities
6.2 phpMyAdmin
6.2.1 数据库管理
6.2.2 数据库对象管理
6.2.3 权限管理
6.2.4 导入导出数据
6.3 小结
第二部分 开发篇
第7章 表类型(存储引擎)的选择
7.1 MySQL存储引擎概述
7.2 各种存储引擎的特性
7.2.1 MyISAM
7.2.2 InnoDB
7.2.3 MEMORY
7.2.4 MERGE
7.2.5 TokuDB
7.3 如何选择合适的存储引擎
7.4 小结
第8章 选择合适的数据类型
8.1 CHAR与VARCHAR
8.2 TEXT与BLOB
8.3 浮点数与定点数
8.4 日期类型选择
8.5 小结
第9章 字符集
9.1 字符集概述
9.2 Unicode简述
9.3 汉字及一些常见字符集
9.4 怎样选择合适的字符集
9.5 MySQL支持的字符集简介
9.6 MySQL字符集的设置
9.6.1 服务器字符集和校对规则
9.6.2 数据库字符集和校对规则
9.6.3 表字符集和校对规则
9.6.4 列字符集和校对规则
9.6.5 连接字符集和校对规则
9.7 字符集的修改步骤
9.8 小结
第10章 索引的设计和使用
10.1 索引概述
10.2 设计索引的原则
10.3 BTREE索引与HASH索引
10.4 小结
第11章 视图
11.1 什么是视图
11.2 视图操作
11.2.1 创建或者修改视图
11.2.2 删除视图
11.2.3 查看视图
11.3 小结
第12章 存储过程和函数
12.1 什么是存储过程和函数
12.2 存储过程和函数的相关操作
12.2.1 创建、修改存储过程或者函数
12.2.2 删除存储过程或者函数
12.2.3 查看存储过程或者函数
12.2.4 变量的使用
12.2.5 定义条件和处理
12.2.6 光标的使用
12.2.7 流程控制
12.2.8 事件调度器
12.3 小结
第13章 触发器
13.1 创建触发器
13.2 删除触发器
13.3 查看触发器
13.4 触发器的使用
13.5 小结
第14章 事务控制和锁定语句
14.1 LOCK TABLE和UNLOCK TABLE
14.2 事务控制
14.3 分布式事务的使用
14.3.1 分布式事务的原理
14.3.2 分布式事务的语法
14.3.3 存在的问题
14.4 小结
第15章 SQL中的安全问题
15.1 SQL注入简介
15.2 应用开发中可以采取的应对措施
15.2.1 PrepareStatement+Bind-Variable
15.2.2 使用应用程序提供的转换函数
15.2.3 自己定义函数进行校验
15.3 小结
第16章 SQL Mode及相关问题
16.1 MySQL SQL Mode简介
16.2 SQL Mode的常见功能
16.3 常用的SQL Mode
16.4 SQL Mode在迁移中如何使用
16.5 小结
第17章 MySQL分区
17.1 分区概述
17.2 分区类型
17.2.1 Range分区
17.2.2 List分区
17.2.3 Columns分区
17.2.4 Hash分区
17.2.5 Key分区
17.2.6 子分区
17.2.7 MySQL分区处理NULL值的方式
17.3 分区管理
17.3.1 RANGE&LIST分区管理
17.3.2 HASH&KEY分区管理
17.4 小结
第三部分 优化篇
第18章 SQL优化
18.1 优化SQL语句的一般步骤
18.1.1 通过show status命令了解各种SQL的执行频率
18.1.2 定位执行效率较低的SQL语句
18.1.3 通过EXPLAIN分析低效SQL的执行计划
18.1.4 通过show profile分析SQL
18.1.5 通过trace分析优化器如何选择执行计划
18.1.6 确定问题并采取相应的优化措施
18.2 索引问题
18.2.1 索引的存储分类
18.2.2 MySQL如何使用索引
18.2.3 查看索引使用情况
18.3 两个简单实用的优化方法
18.3.1 定期分析表和检查表
18.3.2 定期优化表
18.4 常用SQL的优化
18.4.1 大批量插入数据
18.4.2 优化INSERT语句
18.4.3 优化ORDER BY语句
18.4.4 优化GROUP BY语句
18.4.5 优化嵌套查询
18.4.6 MySQL如何优化OR条件
18.4.7 优化分页查询
18.4.8 使用SQL提示
18.5 常用SQL技巧
18.5.1 正则表达式的使用
18.5.2 巧用RAND()提取随机行
18.5.3 利用GROUP BY的WITH ROLLUP子句
18.5.4 用BIT GROUP FUNCT IONS做统计
18.5.5 数据库名、表名大小写问题
18.5.6 使用外键需要注意的问题
18.6 小结
第19章 优化数据库对象
19.1 优化表的数据类型
19.2 通过拆分提高表的访问效率
19.3 逆规范化
19.4 使用中间表提高统计查询速度
19.5 小结
第20章 锁问题
20.1 MySQL锁概述
20.2 MyISAM表锁
20.2.1 查询表级锁争用情况
20.2.2 MySQL表级锁的锁模式
20.2.3 如何加表锁
20.2.4 并发插入(Concurrent Inserts)
20.2.5 MyISAM的锁调度
20.3 InnoDB锁问题
20.3.1 背景知识
20.3.2 获取InnoDB行锁争用情况
20.3.3 InnoDB的行锁模式及加锁方法
20.3.4 InnoDB行锁实现方式
20.3.5 Next-Key锁
20.3.6 恢复和复制的需要,对InnoDB锁机制的影响
20.3.7 InnoDB在不同隔离级别下的一致性读及锁的差异
20.3.8 什么时候使用表锁
20.3.9 关于死锁
20.4 小结
第21章 优化MySQL Server
21.1 MySQL体系结构概览
21.2 MySQL内存管理及优化
21.2.1 内存优化原则
21.2.2 MyISAM内存优化
21.2.3 InnoDB内存优化
21.2.4 调整用户服务线程排序缓存区
21.2 InnoDB log机制及优化
21.3.1 InnoDB重做日志
21.3.2 innodb_flush_log_at_trx_commit的设置
21.3.3 设置log file size,控制检查点
21.3.4 调整innodb_log_buffer_size
21.2 调整MySQL并发相关的参数
21.4.1 调整max_connections,提高并发连接
21.4.2 调整back_log
21.4.3 调整table_open_cache
21.4.4 调整thread_cache_size
21.4.5 innodb_lock_wait_timeout的设置
21.5 小结
第22章 磁盘I/O问题
22.1 使用磁盘阵列
22.1.1 常见RAID级别及其特性
22.1.2 如何选择RAID级别
22.2 虚拟文件卷或软RAID
22.3 使用Symbolic Links分布I/O
22.4 禁止操作系统更新文件的atime属性
22.5 用裸设备(Raw Device)存放InnoDB的共享表空间
22.6 调整I/O调度算法
22.7 RAID卡电池充放电问题
22.7.1 什么是RAID卡电池充放电
22.7.2 RAID卡缓存策略
22.7.3 如何应对RAID卡电池充放电带来的I/O性能波动
22.8 NUMA架构优化
22.9 小结
第23章 应用优化
23.1 使用连接池
23.2 减少对MySQL的访问
23.2.1 避免对同一数据做重复检索
23.2.2 使用查询缓存
23.2.3 增加CACHE层
23.3 负载均衡
23.3.1 利用MySQL复制分流查询操作
23.3.2 采用分布式数据库架构
23.4 其他优化措施
23.5 小结
第四部分 管理维护篇
第24章 MySQL高级安装和升级
24.1 Linux/UNIX平台下的安装
24.1.1 安装包比较
24.1.2 安装RPM包
24.1.3 安装二进制包
24.1.4 安装源码包
24.1.5 参数设置方法
24.2 源码包安装的性能考虑
24.2.1 去掉不需要的模块
24.2.2 只选择要使用的字符集
24.2.3 使用静态编译以提高性能
24.3 升级MySQL
24.4 MySQL降
24.5 小结
第25章 MySQL中的常用工具
25.1 mysql(客户端连接工具)
25.1.1 连接选项
25.1.2 客户端字符集选项
25.1.3 执行选项
25.1.4 格式化选项
25.1.5 错误处理选项
25.2 myisampack(MyISAM表压缩工具)
25.3 mysqladmin(MySQL管理工具)
25.4 mysqlbinlog(日志管理工具)
25.5 mysqlcheck(MyISAM表维护工具)
25.6 mysqldump(数据导出工具)
25.6.1 连接选项
25.6.2 输出内容选项
25.6.3 输出格式选项
25.6.4 字符集选项
25.6.5 其他常用选项
25.7 mysqlhotcopy(MyISAM表热备份工具)
25.8 mysqlimport(数据导入工具)
25.9 mysqlshow(数据库对象查看工具)
25.10 perror(错误代码查看工具)
25.11 replace(文本替换工具)
25.12 小结
第26章 MySQL日志
26.1 错误日志
26.2 二进制日志
26.2.1 日志的位置和格式
26.2.2 日志的读取
26.2.3 日志的删除
26.2.4 其他选项
26.3 查询日志
26.3.1 日志的位置和格式
26.3.2 日志的读取
26.4 慢查询日志
26.4.1 文件位置和格式
26.4.2 日志的读取
26.5 mysqlsla简介
26.6 小结
第27章 备份与恢复
27.1 备份/恢复策略
27.2 逻辑备份和恢复
27.2.1 备份
27.2.2 完全恢复
27.2.3 基于时间点恢复
27.2.4 基于位置恢复
27.3 物理备份和恢复
27.3.1 冷备份
27.3.2 热备份
27.4 表的导入导出
27.4.1 导出
27.4.2 导入
27.5 小结
第28章 MySQL权限与安全
28.1 MySQL权限管理
28.1.1 权限系统的工作原理
28.1.2 权限表的存取
28.1.3 账号管理
28.2 MySQL安全问题
28.2.1 操作系统相关的安全问题
28.2.2 数据库相关的安全问题
28.3 其他安全设置选项
28.3.1 old-passwords
28.3.2 safe-user-create
28.3.3 secure-auth
28.3.4 skip-grant-tables
28.3.5 skip-network
28.3.6 skip-show-database
28.4 小结
第29章 MySQL监控
29.1 如何选择一个监控方案
29.1.1 选择何种监控方式
29.1.2 如何选择适合自己的监控工具
29.2 常用网络监控工具
29.2.1 Cacti简介
29.2.2 Nagios简介
29.2.3 Zabbix简介
29.2.4 几种常见开源软件比较
29.3 Zabbix 部署
29.3.1 Zabbix Server软件安装
29.3.2 Zabbix Server配置与启动
29.3.3 配置Zabbix Web服务端
29.3.4 Zabbix Agent安装和配置
29.3.5 MPM插件介绍和部署
29.3.6 Zabbix Web端操作
29.4 小结
第30章 MySQL常见问题和应用技巧
30.1 忘记MySQL的root密码
30.2 如何处理MyISAM存储引擎的表损坏
30.2.1 方法一:使用myisamchk工具
30.2.2 方法二:使用SQL命令
30.3 MyISAM表超过4GB无法访问的问题
30.4 数据目录磁盘空间不足的问题
30.4.1 对于MyISAM存储引擎的表
30.4.2 对于InnoDB存储引擎的表
30.5 DNS反向解析的问题
30.6 mysql.sock丢失后如何连接数据库
30.7 同一台服务器运行多个MySQL数据库
30.8 客户端怎么访问内网数据库
30.8.1 方法一:使用SecureCRT客户端工具
30.8.2 方法二:使用MySQL Proxy工具
30.9 小结
第五部分 架构篇
第31章 MySQL复制
31.1 复制概述
31.1.1 复制中的各类文件
31.1.2 三种复制方式
31.1.3 复制的3种常见架构
31.2 复制搭建过程
31.2.1 异步复制
31.2.2 半同步复制(Semi-synchronous Replication)
31.3 主要复制启动选项
31.3.1 log-slave-updates
31.3.2 master-connect-retry
31.3.3 read-only
31.3.4 指定复制的数据库或者表
31.3.5 slave-skip-errors
31.4 日常管理维护
31.4.1 查看从库状态
31.4.2 主从库同步维护
31.4.3 从库复制出错的处理
31.4.4 log event entry exceeded max_allowed_packet的处理
31.4.5 多主复制时的自增长变量冲突问题
31.4.6 查看从库的复制进度
31.4.7 如何提高复制的性能
31.5 切换主从库
31.6 小结
第32章 MySQL Cluster
32.1 MySQL Cluster架构
32.2 MySQL Cluster的配置
32.2.1 MySQL Cluster的版本支持
32.2.2 管理节点配置步骤
32.2.3 SQL节点和数据节点的配置
32.3 开始使用Cluster
32.3.1 Cluster的启动
32.3.2 Cluster的测试
32.3.3 Cluster的关闭
32.4 维护Cluster
32.4.1 数据备份
32.4.2 数据恢复
32.4.3 日志管理
32.5 小结
第33章 高可用架构
33.1 MMM架构
33.2 MHA架构
33.3 安装部署MHA
33.3.1 安装MHA node(在所有的MySQL服务器上安装)
33.3.2 安装MHA Manager
33.3.3 配置SSH登录无密码验证
33.3.4 搭建主从复制环境
33.3.5 配置MHA
33.3.6 检查SSH的配置
33.3.7 检查整个复制环境状况
33.3.8 检查MHA Manager的状态
33.3.9 开启MHA Manager监控
33.3.10 查看启动日志
33.3.11 关闭MHA Manager监控
33.3.12 VIP配置
33.3.13 自动Failover
33.3.14 网络问题触发的Failover操作
33.3.15 手动Failover
33.3.16 在线进行切换
33.3.17 修复宕机的Master
33.4 小结
MySQL脚本的基本组成
与常规的脚本语言类似, MySQL 也具有一套对字符、单词以及特殊符号的使用规定, MySQL 通过执行 SQL 脚本来完成对数据库的操作, 该脚本由一条或多条MySQL语句(SQL语句 + 扩展语句)组成, 保存时脚本文件后缀名一般为 .sql。在控制台下, MySQL 客户端也可以对语句进行单句的执行而不用保存为.sql文件。标识符
标识符用来命名一些对象, 如数据库、表、列、变量等, 以便在脚本中的其他地方引用。MySQL标识符命名规则稍微有点繁琐, 这里我们使用万能命名规则: 标识符由字母、数字或下划线(_)组成, 且第一个字符必须是字母或下划线。
对于标识符是否区分大小写取决于当前的操作系统, Windows下是不敏感的, 但对于大多数 linuxunix 系统来说, 这些标识符大小写是敏感的。
关键字: MySQL的关键字众多, 这里不一一列出, 在学习中学习。 这些关键字有自己特定的含义, 尽量避免作为标识符。
语句: MySQL语句是组成MySQL脚本的基本单位, 每条语句能完成特定的操作, 他是由 SQL 标准语句 + MySQL 扩展语句组成。
函数: MySQL函数用来实现数据库操作的一些高级功能, 这些函数大致分为以下几类: 字符串函数、数学函数、日期时间函数、搜索函数、加密函数、信息函数。
MySQL中的数据类型
MySQL有三大类数据类型, 分别为数字、日期时间、字符串, 这三大类中又更细致的划分了许多子类型:数字类型
整数: tinyint、smallint、mediumint、int、bigint
浮点数: float、double、real、decimal
日期和时间: date、time、datetime、timestamp、year
字符串类型
字符串: char、varchar
文本: tinytext、text、mediumtext、longtext
二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob
MYSQL五种查询
wheregroup
havding
order by
limit
在使用的时候必须按照这五个查询方法的顺序使用,否则语法不通过;即 where group having order by limit
标准的 SQL 的解析顺序为:
(1).FROM 子句, 组装来自不同数据源的数据
(2).WHERE 子句, 基于指定的条件对记录进行筛选
(3).GROUP BY 子句, 将数据划分为多个分组
(4).使用聚合函数进行计算(max avg min ...)
(5).使用 HAVING 子句筛选分组
(6).计算所有的表达式(limit)
免责声明:
来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。禁用于商业用途!如果您喜欢《深入浅出MySQL》,请购买正版,谢谢合作。
爱学习,请到3322软件站查找资源自行下载!
下载说明:
方法一:1、下载并解压,得出pdf文件
2、如果打不开本文件,别着急,这时候请务必在3322软件站选择一款阅读器下载哦
3、安装后,再打开解压得出的pdf文件
4、以上都完成后,接下来双击进行阅读就可以啦,朋友们开启你们的阅读之旅吧。
方法二:
1、可以在手机里下载3322软件站中的阅读器和百度网盘
2、接下来直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
展开更多
深入浅出mysql 第二版 pdf下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: