当前位置:主页 > 书籍配套资源 > MySQL配套资源
《MySQL技术大全:开发、优化与运维实战(视频教学版)》配书资源

《MySQL技术大全:开发、优化与运维实战(视频教学版)》配书资源

  • 更新:2022-01-08
  • 大小:15.78 MB
  • 类别:MySQL
  • 作者:冰河
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书全面、系统地介绍MySQL数据库技术,主要阐述MySQL开发、优化和运维过程中的各项技术点。本书对MySQL学习者有较高的参考价值,尤其是环境搭建、优化、维护和架构等相关内容,读者稍加修改便可直接用于实际工作中。另外,作者专门为本书录制了大量的配套教学视频,可以大大提高读者的学习效率。本书共33章,分为6篇:第1篇介绍MySQL基础知识;第2篇介绍环境搭建;第3篇介绍MySQL开发;第4篇介绍MySQL优化;第5篇介绍MySQL维护;第6篇介绍MySQL架构。

本书适合想全面学习MySQL的数据库管理人员、开发人员、运维工程师、架构师阅读,也适合各大院校的学生及相关培训机构的学员阅读。另外,本书还可作为一本案头手册供相关技术人员随查随用。

封面图

目录

  • 前言
  • 第1篇 MySQL基础
  • 第1章 数据库概述2
  • 1.1 数据库的定义2
  • 1.1.1 数据库2
  • 1.1.2 数据库管理系统2
  • 1.1.3 数据表3
  • 1.1.4 数据类型3
  • 1.1.5 运算符4
  • 1.1.6 函数4
  • 1.1.7 主键4
  • 1.1.8 外键4
  • 1.1.9 索引6
  • 1.1.10 视图6
  • 1.1.11 存储过程6
  • 1.1.12 触发器6
  • 1.1.13 存储引擎7
  • 1.2 数据库的发展7
  • 1.2.1 人工管理阶段7
  • 1.2.2 文件系统阶段7
  • 1.2.3 数据库系统阶段8
  • 1.2.4 云数据库阶段8
  • 1.3 本章总结8
  • 第2章 数据库技术9
  • 2.1 数据库系统9
  • 2.2 SQL语言11
  • 2.2.1 SQL语言分类11
  • 2.2.2 ER图12
  • 2.2.3 SQL执行流程14
  • 2.3 数据库访问技术15
  • 2.4 本章总结16
  • 第3章 MySQL数据库17
  • 3.1 MySQL三大范式17
  • 3.1.1 第一范式17
  • 3.1.2 第二范式18
  • 3.1.3 第三范式19
  • 3.1.4 反范式化19
  • 3.2 MySQL存储引擎20
  • 3.2.1 查看MySQL中的存储引擎20
  • 3.2.2 常用存储引擎介绍21
  • 3.3 本章总结23
  • 第2篇 环境搭建
  • 第4章 安装三大操作系统26
  • 4.1 安装VMware虚拟机26
  • 4.1.1 下载VMware虚拟机26
  • 4.1.2 安装VMware虚拟机步骤30
  • 4.2 安装Windows操作系统31
  • 4.2.1 下载Windows操作系统31
  • 4.2.2 设置VMware虚拟机33
  • 4.2.3 安装Windows操作系统步骤38
  • 4.3 安装Mac OS X操作系统44
  • 4.3.1 设置VMware虚拟机45
  • 4.3.2 安装Mac OS X操作系统步骤46
  • 4.4 安装CentOS操作系统55
  • 4.4.1 下载CentOS操作系统55
  • 4.4.2 设置VMware虚拟机56
  • 4.4.3 安装CentOS操作系统步骤56
  • 4.5 本章总结65
  • 第5章 服务器基础配置66
  • 5.1 配置CentOS 6.8服务器环境66
  • 5.1.1 修改主机名66
  • 5.1.2 配置静态IP地址69
  • 5.1.3 配置主机名和IP地址的映射关系71
  • 5.1.4 配置防火墙规则71
  • 5.1.5 配置root用户SSH免密码登录73
  • 5.2 添加mysql用户身份75
  • 5.2.1 添加mysql用户组和用户75
  • 5.2.2 赋予mysql用户目录权限75
  • 5.2.3 赋予mysql用户sudo权限76
  • 5.2.4 赋予mysql用户登录密码76
  • 5.2.5 配置mysql用户SSH免密码登录76
  • 5.3 本章总结77
  • 第6章 搭建MySQL环境78
  • 6.1 基于MSI文件安装Windows版本的MySQL78
  • 6.1.1 下载MySQL的MSI安装包78
  • 6.1.2 基于MSI文件安装MySQL80
  • 6.1.3 配置MySQL系统环境变量90
  • 6.1.4 测试MySQL92
  • 6.2 基于ZIP文件安装Windows版本的MySQL92
  • 6.2.1 下载MySQL的ZIP安装包92
  • 6.2.2 基于ZIP文件安装MySQL94
  • 6.2.3 配置MySQL系统环境变量96
  • 6.2.4 测试MySQL97
  • 6.3 基于DMG文件安装Mac OS X版本的MySQL98
  • 6.3.1 下载MySQL的DMG安装包98
  • 6.3.2 基于DMG文件安装MySQL100
  • 6.3.3 配置MySQL系统环境变量102
  • 6.3.4 测试MySQL104
  • 6.4 基于GZ文件安装Mac OS X版本的MySQL105
  • 6.4.1 下载MySQL的GZ安装包105
  • 6.4.2 基于GZ文件安装MySQL105
  • 6.4.3 配置MySQL系统环境变量107
  • 6.4.4 测试MySQL107
  • 6.5 基于RPM文件安装CentOS版本的MySQL109
  • 6.5.1 删除CentOS 6.8服务器自带的MySQL109
  • 6.5.2 下载MySQL的RPM安装包110
  • 6.5.3 基于RPM文件安装MySQL111
  • 6.5.4 测试MySQL113
  • 6.6 基于源码安装CentOS版本的MySQL114
  • 6.6.1 环境准备115
  • 6.6.2 下载软件包116
  • 6.6.3 升级gcc和cmake117
  • 6.6.4 编译安装MySQL源码119
  • 6.6.5 配置MySQL120
  • 6.6.6 初始化并启动MySQL服务123
  • 6.6.7 测试MySQL123
  • 6.6.8 编译安装MySQL的boost源码124
  • 6.7 遇到的问题和解决方案125
  • 6.8 本章总结126
  • 第3篇 MySQL开发
  • 第7章 MySQL操作数据库128
  • 7.1 创建数据库128
  • 7.1.1 使用CREATE DATABASE语句创建数据库128
  • 7.1.2 使用CREATE DATABASE IF NOT EXISTS语句创建数据库129
  • 7.2 查看数据库130
  • 7.2.1 查看MySQL中存在的数据库130
  • 7.2.2 查看MySQL命令行所在的数据库131
  • 7.2.3 查看数据库的创建信息131
  • 7.3 修改数据库名称132
  • 7.3.1 通过重命名数据表修改数据库名称132
  • 7.3.2 通过导入/导出数据修改数据库名称133
  • 7.3.3 通过创建数据表修改数据库名称134
  • 7.4 数据库编码135
  • 7.4.1 创建数据库时指定字符编码135
  • 7.4.2 修改数据库的字符编码136
  • 7.5 删除数据库136
  • 7.6 本章总结137
  • 第8章 MySQL操作数据表138
  • 8.1 创建数据表138
  • 8.1.1 创建空数据表138
  • 8.1.2 创建数据表时指定主键141
  • 8.1.3 创建数据表时指定外键142
  • 8.1.4 创建数据表时指定字段非空144
  • 8.1.5 创建数据表时指定默认值144
  • 8.1.6 创建数据表时指定主键默认递增145
  • 8.1.7 创建数据表时指定存储引擎146
  • 8.1.8 创建数据表时指定编码146
  • 8.2 查看数据表结构147
  • 8.2.1 使用DESCRIBE/DESC语句查看表结构147
  • 8.2.2 使用SHOW CREATE TABLE语句查看表结构148
  • 8.3 修改数据表149
  • 8.3.1 修改数据表名称150
  • 8.3.2 添加字段150
  • 8.3.3 添加字段时指定位置151
  • 8.3.4 修改字段名称153
  • 8.3.5 修改字段的数据类型154
  • 8.3.6 修改字段的位置154
  • 8.3.7 删除字段156
  • 8.3.8 修改已有表的存储引擎157
  • 8.3.9 取消数据表的外键约束158
  • 8.4 删除数据表158
  • 8.4.1 删除没有关联关系的数据表158
  • 8.4.2 删除有外键约束的主表160
  • 8.5 MySQL中的临时表160
  • 8.5.1 创建临时表161
  • 8.5.2 删除临时表161
  • 8.6 本章总结162
  • 第9章 MySQL数据类型163
  • 9.1 数值类型163
  • 9.1.1 整数类型163
  • 9.1.2 浮点数类型168
  • 9.1.3 定点数类型171
  • 9.2 日期和时间类型173
  • 9.2.1 YEAR类型174
  • 9.2.2 TIME类型176
  • 9.2.3 DATE类型178
  • 9.2.4 DATETIME类型181
  • 9.2.5 TIMESTAMP类型183
  • 9.3 文本字符串类型186
  • 9.3.1 文本字符串类型概述186
  • 9.3.2 CHAR与VARCHAR类型187
  • 9.3.3 TEXT类型188
  • 9.3.4 ENUM类型189
  • 9.3.5 SET类型191
  • 9.3.6 JSON类型192
  • 9.4 二进制字符串类型193
  • 9.4.1 二进制字符串类型概述193
  • 9.4.2 BIT类型194
  • 9.4.3 BINARY与VARBINARY类型195
  • 9.4.4 BLOB类型196
  • 9.5 本章总结196
  • 第10章 MySQL运算符197
  • 10.1 算术运算符197
  • 10.1.1 MySQL支持的算术运算符197
  • 10.1.2 算术运算符简单示例198
  • 10.2 比较运算符199
  • 10.2.1 MySQL支持的比较运算符199
  • 10.2.2 比较运算符简单示例201
  • 10.3 逻辑运算符206
  • 10.3.1 MySQL支持的逻辑运算符206
  • 10.3.2 逻辑运算符简单示例206
  • 10.4 位运算符208
  • 10.4.1 MySQL支持的位运算符208
  • 10.4.2 位运算符简单示例208
  • 10.5 运算符的优先级210
  • 10.6 本章总结211
  • 第11章 MySQL函数212
  • 11.1 MySQL函数简介212
  • 11.2 数学函数213
  • 11.2.1 绝对值函数213
  • 11.2.2 圆周率函数213
  • 11.2.3 获取整数的函数213
  • 11.2.4 返回列表中的最大值与最小值函数214
  • 11.2.5 角度与弧度互换函数215
  • 11.2.6 三角函数215
  • 11.2.7 乘方与开方函数217
  • 11.2.8 对数函数218
  • 11.2.9 随机函数219
  • 11.2.10 四舍五入与数字截取函数220
  • 11.2.11 符号函数221
  • 11.2.12 数学运算函数221
  • 11.3 字符串函数222
  • 11.3.1 ASCII(S)函数222
  • 11.3.2 CHAR_LENGTH(S)函数222
  • 11.3.3 LENGTH(S)函数223
  • 11.3.4 CONCAT(S1,S2,…,Sn)函数223
  • 11.3.5 CONCAT_WS(X, S1,S2,…,Sn)函数223
  • 11.3.6 INSERT(oldstr, x, y, replacestr)函数224
  • 11.3.7 LOWER(S)函数224
  • 11.3.8 UPPER(S)函数225
  • 11.3.9 LEFT(str, x)函数225
  • 11.3.10 RIGHT(str, x)函数225
  • 11.3.11 LPAD(str, n pstr)函数226
  • 11.3.12 RPAD(str, n, pstr)函数226
  • 11.3.13 LTRIM(S)函数226
  • 11.3.14 RTRIM(S)函数226
  • 11.3.15 TRIM(S)函数227
  • 11.3.16 TRIM(substr FROM str)函数227
  • 11.3.17 REPEAT(str, x)函数227
  • 11.3.18 REPLACE(S,A,B)函数227
  • 11.3.19 STRCMP(S1, S2)函数228
  • 11.3.20 SUBSTR(S, X, Y)函数228
  • 11.3.21 MID(S, X, Y)函数228
  • 11.3.22 SPACE(X)函数229
  • 11.3.23 LOCATE(substr, str)函数229
  • 11.3.24 ELT(M, S1, S2, …, Sn)函数230
  • 11.3.25 FIELD(S,S1,S2,…,Sn)函数230
  • 11.3.26 FIND_IN_SET(S1, S2)函数230
  • 11.3.27 REVERSE(S)函数231
  • 11.3.28 NULLIF(value1, value2)函数231
  • 11.4 日期和时间函数231
  • 11.4.1 CURDATE()函数232
  • 11.4.2 CURTIME()函数232
  • 11.4.3 NOW()函数232
  • 11.4.4 UNIX_TIMESTAMP(date)函数233
  • 11.4.5 FROM_UNIXTIME(timestamp)函数233
  • 11.4.6 UTC_DATE()函数233
  • 11.4.7 UTC_TIME()函数234
  • 11.4.8 YEAR(date)函数234
  • 11.4.9 MONTH(date)函数234
  • 11.4.10 MONTHNAME(date)函数235
  • 11.4.11 DAY(date)函数235
  • 11.4.12 DAYNAME(date)函数235
  • 11.4.13 DAYOFWEEK(date)函数235
  • 11.4.14 WEEKDAY(date)函数236
  • 11.4.15 WEEK(date)函数236
  • 11.4.16 WEEKOFYEAR(date)函数236
  • 11.4.17 DAYOFYEAR(date)函数237
  • 11.4.18 DAYOFMONTH(date)函数237
  • 11.4.19 QUARTER(date)函数237
  • 11.4.20 HOUR(time)函数237
  • 11.4.21 MINUTE(time)函数238
  • 11.4.22 SECOND(time)函数238
  • 11.4.23 EXTRACT(type FROM date)函数238
  • 11.4.24 TIME_TO_SEC(time)函数239
  • 11.4.25 SEC_TO_TIME(seconds)函数240
  • 11.4.26 DATE_ADD(date, INTERVAL expr type)函数240
  • 11.4.27 DATE_SUB(date, INTERVAL expr type)函数241
  • 11.4.28 ADDTIME(time1, time2)函数241
  • 11.4.29 SUBTIME(time1, time2)函数242
  • 11.4.30 DATEDIFF(date1, date2)函数242
  • 11.4.31 FROM_DAYS(N)函数242
  • 11.4.32 LAST_DAY(date)函数243
  • 11.4.33 MAKEDATE(year, n)函数243
  • 11.4.34 MAKETIME(hour, minute, second)函数243
  • 11.4.35 PERIOD_ADD(time, n)函数244
  • 11.4.36 TO_DAYS(date)函数244
  • 11.4.37 DATE_FORMAT(date, format)函数244
  • 11.4.38 TIME_FORMAT(time, format)函数245
  • 11.4.39 GET_FORMAT(date_type, format_type)函数246
  • 11.4.40 STR_TO_DATE(str, format)函数246
  • 11.5 流程处理函数247
  • 11.5.1 IF(value, value1,value2)函数247
  • 11.5.2 IFNULL(value1, value2)函数247
  • 11.5.3 CASE WHEN THEN函数247
  • 11.5.4 CASE expr WHEN函数248
  • 11.6 加密与解密函数248
  • 11.6.1 PASSWORD(value)函数249
  • 11.6.2 MD5(value)函数249
  • 11.6.3 ENCODE(value, password_seed)函数249
  • 11.6.4 DECODE(value, password_seed)函数249
  • 11.7 聚合函数250
  • 11.7.1 COUNT(*/字段名称)函数250
  • 11.7.2 MAX(字段名称)函数251
  • 11.7.3 MIN(字段名称)函数251
  • 11.7.4 SUM(字段名称)函数251
  • 11.7.5 AVG(字段名称)函数251
  • 11.8 获取MySQL信息函数252
  • 11.8.1 VERSION()函数252
  • 11.8.2 CONNECTION_ID()函数252
  • 11.8.3 DATABASE()函数252
  • 11.8.4 USER()函数253
  • 11.8.5 LAST_INSERT_ID()函数253
  • 11.8.6 CHARSET(value)函数254
  • 11.8.7 COLLATION(value)函数254
  • 11.9 加锁与解锁函数254
  • 11.9.1 GET_LOCK(value, timeout)函数254
  • 11.9.2 RELEASE_LOCK(value)函数255
  • 11.9.3 IS_FREE_LOCK(value)函数255
  • 11.9.4 IS_USED_LOCK(value)函数255
  • 11.10 JSON函数256
  • 11.10.1 JSON_CONTAINS(json_doc, value)函数256
  • 11.10.2 JSON_SEARCH(json_doc ->> '$[*].key', type, value)函数257
  • 11.10.3 JSON_PRETTY(json_doc)函数257
  • 11.10.4 JSON_DEPTH(json_doc)函数257
  • 11.10.5 JSON_LENGTH(json_doc[, path])函数258
  • 11.10.6 JSON_KEYS(json_doc[, path])函数258
  • 11.10.7 JSON_INSERT(json_doc, path, val[, path, val] ...)函数258
  • 11.10.8 JSON_REMOVE(json_doc, path[, path] ...)函数259
  • 11.10.9 JSON_REPLACE(json_doc, path, val[, path, val] ...)函数259
  • 11.10.10 JSON_SET(json_doc, path, val[, path, val] ...)函数260
  • 11.10.11 JSON_TYPE(json_val)函数261
  • 11.10.12 JSON_VALID(value)函数261
  • 11.11 窗口函数261
  • 11.11.1 序号函数263
  • 11.11.2 分布函数264
  • 11.11.3 前后函数265
  • 11.11.4 首尾函数267
  • 11.11.5 其他函数268
  • 11.12 MySQL的其他函数269
  • 11.12.1 FORMAT(value, n)函数269
  • 11.12.2 CONV(value, from, to)函数269
  • 11.12.3 INET_ATON(value)函数270
  • 11.12.4 INET_NTOA(value)函数270
  • 11.12.5 BENCHMARK(n, expr)函数270
  • 11.12.6 CAST(value AS type)函数271
  • 11.12.7 CONVERT(value USING char_code)函数271
  • 11.13 本章总结272
  • 第12章 MySQL数据变更273
  • 12.1 数据插入273
  • 12.1.1 数据插入规则273
  • 12.1.2 插入完整的行记录274
  • 12.1.3 指定字段插入数据275
  • 12.1.4 一次插入多条数据记录276
  • 12.1.5 将查询结果插入另一个表中278
  • 12.2 数据更新280
  • 12.2.1 更新数据表中的所有记录281
  • 12.2.2 更新表中特定的数据行281
  • 12.2.3 更新某个范围内的数据282
  • 12.2.4 更新符合正则表达式的数据285
  • 12.3 数据删除286
  • 12.3.1 删除数据表中特定的数据286
  • 12.3.2 删除某个范围内的数据286
  • 12.3.3 删除符合正则表达式的数据289
  • 12.3.4 删除数据表中的所有数据289
  • 12.4 本章总结289
  • 第13章 MySQL数据查询290
  • 13.1 数据准备290
  • 13.2 SELECT查询语句291
  • 13.2.1 查询表中所有字段的数据291
  • 13.2.2 查询表中单个字段的数据293
  • 13.2.3 查询表中指定字段的数据294
  • 13.2.4 使用完全限定字段名查询数据294
  • 13.2.5 使用完全限定表名查询数据295
  • 13.3 WHERE条件语句296
  • 13.3.1 WHERE语句语法格式296
  • 13.3.2 查询单一的特定数据296
  • 13.3.3 查询某个范围内的数据297
  • 13.3.4 IN和NOT IN条件语句297
  • 13.3.5 BETWEEN AND条件语句298
  • 13.3.6 LIKE条件语句299
  • 13.3.7 空值条件限制语句300
  • 13.3.8 AND语句302
  • 13.3.9 OR语句303
  • 13.3.10 DISTINCT语句303
  • 13.3.11 ORDER BY语句304
  • 13.3.12 GROUP BY语句306
  • 13.3.13 HAVING语句308
  • 13.3.14 WITH ROLLUP语句308
  • 13.3.15 对数据同时进行分组与排序308
  • 13.3.16 LIMIT语句309
  • 13.4 数据聚合查询310
  • 13.4.1 查询数据的总行数310
  • 13.4.2 查询某列数据的总和311
  • 13.4.3 查询某列数据的最小值312
  • 13.4.4 查询某列数据的最大值312
  • 13.4.5 查询某列数据的平均值313
  • 13.5 JOIN语句314
  • 13.5.1 INNER JOIN语句314
  • 13.5.2 LEFT JOIN语句315
  • 13.5.3 RIGHT JOIN语句316
  • 13.5.4 CROSS JOIN 语句317
  • 13.5.5 使用复合连接条件查询数据317
  • 13.6 子查询语句318
  • 13.6.1 ANY子查询318
  • 13.6.2 ALL子查询319
  • 13.6.3 EXISTS子查询319
  • 13.6.4 NOT EXISTS子查询320
  • 13.6.5 IN子查询320
  • 13.6.6 NOT IN子查询321
  • 13.6.7 子查询作为结果字段321
  • 13.7 UNION联合语句322
  • 13.7.1 UNION语句322
  • 13.7.2 UNION ALL语句323
  • 13.8 使用别名查询数据323
  • 13.8.1 为字段名指定别名323
  • 13.8.2 为表名指定别名324
  • 13.8.3 同时为字段名和表名指定别名325
  • 13.9 使用正则表达式查询数据325
  • 13.10 本章总结326
  • 第14章 MySQL索引327
  • 14.1 索引简介327
  • 14.1.1 MySQL遍历表的方式327
  • 14.1.2 索引的优点与缺点328
  • 14.1.3 索引的创建原则328
  • 14.2 索引的使用场景329
  • 14.2.1 适合创建索引的场景329
  • 14.2.2 不适合创建索引的场景330
  • 14.3 创建数据表时创建索引330
  • 14.3.1 语法格式330
  • 14.3.2 创建普通索引331
  • 14.3.3 创建唯一索引332
  • 14.3.4 创建主键索引333
  • 14.3.5 创建单列索引333
  • 14.3.6 创建组合索引334
  • 14.3.7 创建全文索引337
  • 14.3.8 创建空间索引338
  • 14.4 为已有数据表添加索引338
  • 14.4.1 语法格式339
  • 14.4.2 创建普通索引339
  • 14.4.3 创建唯一索引340
  • 14.4.4 创建主键索引341
  • 14.4.5 创建单列索引342
  • 14.4.6 创建组合索引343
  • 14.4.7 创建全文索引344
  • 14.4.8 创建空间索引345
  • 14.5 删除索引347
  • 14.5.1 语法格式347
  • 14.5.2 删除索引方式347
  • 14.6 隐藏索引348
  • 14.6.1 隐藏索引概述349
  • 14.6.2 语法格式349
  • 14.6.3 创建测试表349
  • 14.6.4 索引操作350
  • 14.7 降序索引355
  • 14.7.1 降序索引概述355
  • 14.7.2 降序索引操作355
  • 14.8 函数索引359
  • 14.8.1 函数索引概述359
  • 14.8.2 函数索引操作359
  • 14.9 本章总结363
  • 第15章 MySQL视图364
  • 15.1 视图概述364
  • 15.1.1 视图的概念364
  • 15.1.2 视图的优点364
  • 15.2 创建视图365
  • 15.2.1 语法格式365
  • 15.2.2 创建单表视图366
  • 15.2.3 创建多表联合视图369
  • 15.3 查看视图370
  • 15.3.1 使用SHOW TABLES语句查看视图370
  • 15.3.2 使用DESCRIBE/DESC语句查看视图371
  • 15.3.3 使用SHOW TABLE STATUS语句查看视图371
  • 15.3.4 使用SHOW CREATE VIEW语句查看视图373
  • 15.3.5 查看views数据表中的视图信息373
  • 15.4 修改视图的结构374
  • 15.4.1 使用CREATE OR REPLACE VIEW语句修改视图结构374
  • 15.4.2 使用ALTER语句修改视图结构375
  • 15.5 更新视图的数据376
  • 15.5.1 直接更新视图数据376
  • 15.5.2 间接更新视图数据379
  • 15.6 删除视图381
  • 15.7 本章总结382
  • 第16章 存储过程和函数383
  • 16.1 存储过程和函数简介383
  • 16.1.1 什么是存储过程和函数383
  • 16.1.2 存储过程和函数的使用场景384
  • 16.1.3 存储过程和函数的优点384
  • 16.2 创建存储过程和函数386
  • 16.2.1 创建存储过程386
  • 16.2.2 创建存储函数388
  • 16.3 查看存储过程和函数389
  • 16.3.1 查看存储过程和函数的创建或定义信息389
  • 16.3.2 查看存储过程和函数的状态信息390
  • 16.3.3 从数据库中查看存储过程和函数的信息391
  • 16.4 修改存储过程和函数394
  • 16.4.1 修改存储过程394
  • 16.4.2 修改存储函数395
  • 16.5 调用存储过程和函数396
  • 16.5.1 调用存储过程396
  • 16.5.2 调用存储函数397
  • 16.6 删除存储过程和函数398
  • 16.6.1 删除存储过程398
  • 16.6.2 删除存储函数398
  • 16.7 MySQL中使用变量399
  • 16.7.1 定义变量399
  • 16.7.2 变量赋值400
  • 16.8 MySQL中使用变量案例401
  • 16.8.1 在存储过程中使用变量401
  • 16.8.2 在函数中使用变量402
  • 16.9 定义条件和处理程序403
  • 16.9.1 定义条件403
  • 16.9.2 定义处理程序404
  • 16.10 定义条件和处理程序案例405
  • 16.10.1 在存储过程中未定义条件和处理程序406
  • 16.10.2 在存储过程中定义条件和处理程序407
  • 16.10.3 在函数中未定义条件和处理程序408
  • 16.10.4 在函数中定义条件和处理程序409
  • 16.11 MySQL中游标的使用410
  • 16.11.1 声明游标410
  • 16.11.2 打开游标410
  • 16.11.3 使用游标411
  • 16.11.4 关闭游标411
  • 16.12 MySQL中游标的使用案例412
  • 16.12.1 在存储过程中使用游标412
  • 16.12.2 在函数中使用游标413
  • 16.13 MySQL中控制流程的使用414
  • 16.13.1 使用IF语句控制流程414
  • 16.13.2 使用CASE语句控制流程415
  • 16.13.3 使用LOOP语句控制流程417
  • 16.13.4 使用LEAVE语句控制流程418
  • 16.13.5 使用ITERATE语句控制流程418
  • 16.13.6 使用REPEAT语句控制流程419
  • 16.13.7 使用WHILE语句控制流程420
  • 16.14 本章总结421
  • 第17章 MySQL触发器422
  • 17.1 创建触发器422
  • 17.1.1 语法格式422
  • 17.1.2 创建触发器示例423
  • 17.2 查看触发器425
  • 17.2.1 使用SHOW TRIGGERS语句查看触发器的信息425
  • 17.2.2 使用SHOW CREATE TRIGGER语句查看触发器的信息426
  • 17.2.3 通过查看triggers数据表中的数据查看触发器的信息427
  • 17.3 删除触发器429
  • 17.3.1 语法格式429
  • 17.3.2 删除触发器示例429
  • 17.4 本章小结429
  • 第18章 MySQL分区430
  • 18.1 分区介绍430
  • 18.1.1 不同版本MySQL的分区430
  • 18.1.2 分区的优势432
  • 18.1.3 分区类型433
  • 18.2 RANGE分区434
  • 18.2.1 创建分区表434
  • 18.2.2 添加分区437
  • 18.2.3 删除分区438
  • 18.2.4 重定义分区440
  • 18.3 LIST分区442
  • 18.3.1 创建分区表442
  • 18.3.2 添加分区443
  • 18.3.3 删除分区444
  • 18.3.4 重定义分区444
  • 18.4 COLUMNS分区445
  • 18.4.1 RANGE COLUMNS分区446
  • 18.4.2 LIST COLUMNS分区447
  • 18.5 HASH分区448
  • 18.5.1 创建分区表448
  • 18.5.2 添加分区449
  • 18.5.3 合并分区450
  • 18.6 KEY分区451
  • 18.7 子分区452
  • 18.8 分区中的NULL值处理452
  • 18.8.1 RANGE分区中的NULL值452
  • 18.8.2 LIST分区中的NULL值453
  • 18.8.3 HASH分区与KEY分区中的NULL值454
  • 18.9 本章总结455
  • 第19章 MySQL公用表表达式和生成列456
  • 19.1 公用表表达式456
  • 19.1.1 非递归CTE456
  • 19.1.2 递归CTE457
  • 19.1.3 递归CTE的限制459
  • 19.2 生成列461
  • 19.2.1 创建表时指定生成列462
  • 19.2.2 为已有表添加生成列463
  • 19.2.3 修改已有的生成列464
  • 19.2.4 删除生成列464
  • 19.3 本章总结465
  • 第4篇 MySQL优化
  • 第20章 MySQL查询优化468
  • 20.1 SHOW STATUS语句解析468
  • 20.2 EXPLAIN语句解析469
  • 20.3 SHOW PROFILE语句解析477
  • 20.3.1 分析InnoDB数据表478
  • 20.3.2 分析MyISAM数据表480
  • 20.3.3 分析MySQL源码481
  • 20.4 pt-query-digest分析查询482
  • 20.5 优化子查询483
  • 20.6 本章总结483
  • 第21章 MySQL索引优化484
  • 21.1 索引的类型484
  • 21.2 使用索引的场景485
  • 21.2.1 全值匹配485
  • 21.2.2 查询范围486
  • 21.2.3 匹配最左前缀486
  • 21.2.4 查询索引列487
  • 21.2.5 匹配字段前缀487
  • 21.2.6 精确与范围匹配索引488
  • 21.2.7 匹配NULL值488
  • 21.2.8 连接查询匹配索引489
  • 21.2.9 LIKE匹配索引490
  • 21.3 无法使用索引的场景490
  • 21.3.1 以通配符开始的LIKE语句490
  • 21.3.2 数据类型转换491
  • 21.3.3 联合索引未匹配最左列491
  • 21.3.4 OR语句492
  • 21.3.5 计算索引列492
  • 21.3.6 范围条件右侧的列无法使用索引493
  • 21.3.7 使用<>或!=操作符匹配查询条件493
  • 21.3.8 匹配NOT NULL值493
  • 21.3.9 索引耗时494
  • 21.4 使用索引提示494
  • 21.4.1 使用索引494
  • 21.4.2 忽略索引495
  • 21.4.3 强制使用索引495
  • 21.5 使用生成列为JSON建立索引496
  • 21.6 本章总结497
  • 第22章 SQL语句优化498
  • 22.1 嵌套查询的优化498
  • 22.2 OR条件语句的优化500
  • 22.3 ORDER BY语句的优化501
  • 22.4 GROUP BY语句的优化502
  • 22.5 分页查询的优化503
  • 22.5.1 回表查询优化分页503
  • 22.5.2 记录数据标识优化分页504
  • 22.6 插入数据的优化505
  • 22.6.1 MyISAM数据表插入数据的优化505
  • 22.6.2 InnoDB数据表插入数据的优化506
  • 22.7 删除数据的优化506
  • 22.8 本章总结507
  • 第23章 数据库优化508
  • 23.1 优化数据类型508
  • 23.1.1 使用数据类型的基本原则508
  • 23.1.2 优化表中的数据类型509
  • 23.2 删除重复索引和冗余索引511
  • 23.2.1 创建测试索引511
  • 23.2.2 使用pt-duplicate-key-checker删除重复索引和冗余索引511
  • 23.2.3 使用mysqlindexcheck删除重复索引和冗余索引513
  • 23.3 反范式化设计514
  • 23.4 增加中间表515
  • 23.5 分析数据表517
  • 23.6 检查数据表518
  • 23.7 优化数据表518
  • 23.8 拆分数据表519
  • 23.8.1 垂直拆分数据表519
  • 23.8.2 水平拆分数据表520
  • 23.9 本章总结520
  • 第24章 MySQL服务器优化521
  • 24.1 MySQL服务器硬件的优化521
  • 24.1.1 优化硬件配置521
  • 24.1.2 系统内核优化522
  • 24.2 MySQL配置项的优化523
  • 24.3 本章总结524
  • 第25章 应用程序优化525
  • 25.1 复用数据库连接525
  • 25.2 减少数据访问526
  • 25.3 开启查询缓存527
  • 25.4 使用外部缓存528
  • 25.5 使用分布式MySQL架构529
  • 25.6 本章总结529
  • 第26章 MySQL的其他优化选项530
  • 26.1 使用performance_schema数据库分析MySQL530
  • 26.1.1 查看MySQL是否支持performance_schema530
  • 26.1.2 开启或关闭performance_schema532
  • 26.1.3 performance_schema的简单配置与使用532
  • 26.2 使用sys数据库分析MySQL535
  • 26.2.1 sys数据库概述535
  • 26.2.2 sys数据库的常用查询535
  • 26.3 MySQL 8.x中的资源组538
  • 26.3.1 开启 CAP_SYS_NICE538
  • 26.3.2 创建资源组539
  • 26.3.3 查看资源组540
  • 26.3.4 绑定资源组540
  • 26.3.5 修改资源组542
  • 26.3.6 开启与禁用资源组542
  • 26.3.7 删除资源组543
  • 26.4 本章总结544
  • 第5篇 MySQL运维
  • 第27章 MySQL命令行工具546
  • 27.1 查看MySQL命令546
  • 27.2 mysql命令547
  • 27.2.1 登录MySQL终端547
  • 27.2.2 设置客户端连接编码549
  • 27.2.3 直接执行SQL语句550
  • 27.2.4 格式化输出结果550
  • 27.2.5 SQL报错处理551
  • 27.3 mysqladmin命令552
  • 27.3.1 mysqladmin命令参数553
  • 27.3.2 mysqladmin命令简单示例553
  • 27.4 myisampack命令554
  • 27.5 mysqlbinlog命令555
  • 27.6 mysqlcheck命令558
  • 27.7 mysqlshow命令559
  • 27.8 mysqldump命令561
  • 27.9 mysqlimport命令563
  • 27.10 本章总结564
  • 第28章 MySQL日志565
  • 28.1 查询日志565
  • 28.1.1 开启查询日志565
  • 28.1.2 查看查询日志566
  • 28.1.3 删除查询日志567
  • 28.1.4 关闭查询日志568
  • 28.2 慢查询日志568
  • 28.2.1 开启慢查询日志568
  • 28.2.2 查看慢查询日志569
  • 28.2.3 删除慢查询日志570
  • 28.2.4 关闭慢查询日志571
  • 28.3 错误日志571
  • 28.3.1 开启错误日志571
  • 28.3.2 查看错误日志572
  • 28.3.3 删除错误日志572
  • 28.3.4 关闭错误日志573
  • 28.4 二进制日志573
  • 28.4.1 开启二进制日志573
  • 28.4.2 查看二进制日志574
  • 28.4.3 删除二进制日志575
  • 28.4.4 暂时停止与开启二进制日志577
  • 28.4.5 关闭二进制日志577
  • 28.5 本章总结577
  • 第29章 数据备份与恢复578
  • 29.1 基于mysqldump备份并恢复数据578
  • 29.1.1 备份数据578
  • 29.1.2 恢复数据581
  • 29.2 基于mysqlpump备份并恢复数据582
  • 29.3 基于mydumper备份并恢复数据583
  • 29.3.1 安装mydumper583
  • 29.3.2 备份数据584
  • 29.3.3 恢复数据588
  • 29.4 基于mysqlhotcopy备份并恢复数据589
  • 29.4.1 安装mysqlhotcopy589
  • 29.4.2 备份数据590
  • 29.4.3 恢复数据590
  • 29.5 基于xtrabackup备份并恢复数据590
  • 29.5.1 安装xtrabackup590
  • 29.5.2 备份数据591
  • 29.5.3 恢复准备593
  • 29.5.4 恢复数据594
  • 29.6 数据备份与恢复案例596
  • 29.6.1 完全恢复数据案例596
  • 29.6.2 基于位置点恢复数据案例598
  • 29.6.3 基于时间点恢复数据案例598
  • 29.7 MySQL灾难恢复598
  • 29.7.1 问题重现599
  • 29.7.2 问题分析599
  • 29.7.3 问题解决600
  • 29.8 实现数据库的自动备份602
  • 29.9 导出数据603
  • 29.9.1 使用SELECT INTO OUTFILE语句导出数据603
  • 29.9.2 使用mysqldump命令导出数据605
  • 29.9.3 使用mysql命令导出数据606
  • 29.10 导入数据607
  • 29.10.1 使用LOAD DATA INFILE导入数据608
  • 29.10.2 使用mysqlimport导入数据609
  • 29.11 遇到的问题和解决方案610
  • 29.12 本章总结611
  • 第30章 MySQL账户管理612
  • 30.1 MySQL中的权限表612
  • 30.2 创建普通用户613
  • 30.2.1 使用CREATE USER语句创建用户613
  • 30.2.2 使用GRANT语句创建用户617
  • 30.2.3 操作user数据表创建用户619
  • 30.3 为用户授权620
  • 30.3.1 权限层级620
  • 30.3.2 使用GRANT语句为用户授权621
  • 30.3.3 通过操作权限表为用户授权624
  • 30.4 查看用户权限624
  • 30.4.1 通过SHOW GRANTS FOR语句查看用户权限624
  • 30.4.2 通过查询mysql.user数据表查看用户权限625
  • 30.4.3 通过查询information_schema数据库查看用户权限625
  • 30.5 修改用户权限626
  • 30.5.1 使用GRANT语句修改用户权限626
  • 30.5.2 通过操作数据表修改用户权限627
  • 30.6 撤销用户权限628
  • 30.6.1 使用REVOKE语句撤销用户权限628
  • 30.6.2 通过操作数据表撤销用户权限629
  • 30.7 修改用户密码630
  • 30.7.1 通过mysqladmin修改用户密码630
  • 30.7.2 使用SET PASSWORD语句修改用户密码630
  • 30.7.3 使用GRANT语句修改用户密码631
  • 30.7.4 通过操作user数据表修改用户密码632
  • 30.7.5 忘记root密码的解决方案632
  • 30.8 删除用户633
  • 30.8.1 使用DROP USER语句删除用户633
  • 30.8.2 使用DELETE语句删除用户634
  • 30.9 限制用户使用资源634
  • 30.9.1 限制用户使用资源示例634
  • 30.9.2 修改用户的资源限制635
  • 30.9.3 解除用户的资源限制635
  • 30.10 MySQL 8.x版本中的账户管理636
  • 30.10.1 用户创建和授权636
  • 30.10.2 认证插件更新636
  • 30.10.3 密码管理638
  • 30.10.4 角色管理640
  • 30.11 本章总结644
  • 第6篇 MySQL架构
  • 第31章 MySQL复制646
  • 31.1 搭建MySQL主从复制环境646
  • 31.1.1 服务器规划646
  • 31.1.2 搭建MySQL主从环境647
  • 31.1.3 测试MySQL主从复制环境650
  • 31.2 搭建MySQL主主复制环境652
  • 31.2.1 服务器规划652
  • 31.2.2 将MySQL主从环境切换为主主环境652
  • 31.2.3 直接搭建MySQL主主环境654
  • 31.2.4 测试MySQL主主复制环境654
  • 31.3 添加MySQL从库655
  • 31.3.1 服务器规划655
  • 31.3.2 在主从服务器上进行的操作656
  • 31.3.3 测试MySQL主从复制环境658
  • 31.4 切换主从复制到链式复制659
  • 31.4.1 服务器规划659
  • 31.4.2 切换复制模式660
  • 31.5 切换链式复制到主从复制662
  • 31.6 搭建MySQL多源复制环境665
  • 31.6.1 服务器规划665
  • 31.6.2 搭建MySQL多源复制环境666
  • 31.6.3 测试MySQL多源复制环境667
  • 31.7 添加复制过滤器668
  • 31.7.1 复制指定的数据库669
  • 31.7.2 忽略指定的数据库669
  • 31.7.3 复制指定的数据表670
  • 31.7.4 忽略指定的数据表670
  • 31.8 设置延迟复制671
  • 31.9 基于GTID搭建MySQL主从复制环境671
  • 31.10 基于半同步模式搭建MySQL主从复制环境673
  • 31.10.1 半同步参数说明673
  • 31.10.2 配置半同步复制674
  • 31.10.3 测试半同步复制676
  • 31.11 本章总结677
  • 第32章 MySQL读写分离678
  • 32.1 基于MySQL Proxy实现读写分离678
  • 32.1.1 服务器规划678
  • 32.1.2 安装Lua环境679
  • 32.1.3 安装MySQL Proxy679
  • 32.1.4 配置MySQL Proxy读写分离680
  • 32.1.5 启动MySQL Proxy683
  • 32.1.6 测试MySQL Proxy的读写分离683
  • 32.2 基于Atlas实现读写分离685
  • 32.2.1 服务器规划685
  • 32.2.2 安装Atlas685
  • 32.2.3 配置Atlas读写分离686
  • 32.2.4 启动Atlas687
  • 32.2.5 测试Atlas读写分离689
  • 32.3 基于ProxySQL实现读写分离689
  • 32.3.1 服务器规划689
  • 32.3.2 安装ProxySQL690
  • 32.3.3 配置ProxySQL读写分离690
  • 32.3.4 测试ProxySQL读写分离695
  • 32.4 基于Amoeba实现读写分离695
  • 32.4.1 服务器规划695
  • 32.4.2 安装JDK695
  • 32.4.3 安装Amoeba696
  • 32.4.4 配置Amoeba读写分离697
  • 32.4.5 启动Amoeba699
  • 32.4.6 测试Amoeba读写分离700
  • 32.5 基于Mycat实现读写分离700
  • 32.5.1 服务器规划701
  • 32.5.2 安装JDK701
  • 32.5.3 安装Mycat701
  • 32.5.4 配置Mycat读写分离702
  • 32.5.5 启动Mycat703
  • 32.5.6 测试Mycat读写分离704
  • 32.6 本章总结704
  • 第33章 MySQL HA高可用架构705
  • 33.1 基于Keepalived搭建MySQL高可用环境705
  • 33.1.1 服务器规划705
  • 33.1.2 安装Keepalived706
  • 33.1.3 配置MySQL高可用707
  • 33.1.4 测试MySQL高可用710
  • 33.1.5 自动重启MySQL711
  • 33.2 基于HAProxy搭建Mycat高可用环境713
  • 33.2.1 服务器规划713
  • 33.2.2 安装Mycat状态检查服务713
  • 33.2.3 安装HAProxy服务715
  • 33.2.4 配置Mycat负载均衡716
  • 33.2.5 测试Mycat高可用环境719
  • 33.3 基于Keepalived搭建HAProxy高可用环境721
  • 33.3.1 服务器规划721
  • 33.3.2 安装并配置HAProxy和Keepalived721
  • 33.3.3 配置HAProxy高可用性722
  • 33.3.4 测试HAProxy高可用性725
  • 33.4 本章总结726
  • 参考文献727

资源下载

资源下载地址1:https://pan.baidu.com/s/1RXrfo41NxtOIfHo-Eaquhg

相关资源

网友留言