《MySQL核心技术与最佳实践》(孔祥盛 编着)【文字版_PDF电子书_推荐】

内容简介:
作为世界上最受欢迎的开源数据库管理系统,MySQL具有成本低廉、体积小、便于安装、性能优越、功能强大等特点,很多企业将MySQL作为最佳数据库管理系统。《MySQL核心技术与最佳实践》从关系数据库设计、MySQL基础、MySQL编程、MySQL管理及维护4个角度,深入浅出地对MySQL的核心技术进行了详细的介绍,并通过综合实训提供了MySQL核心技术的最佳实践。
《MySQL核心技术与最佳实践》尽量将抽象问题形象化、具体化,复杂问题图形化、简单化,突出自学和模仿的特点,内容丰富,讲解深入,具有很强的实战性和可操作性。《MySQL核心技术与最佳实践》入门门槛低,适合所有数据库初学者快速入门,非常适合用做培训机构的培训资料。
《MySQL核心技术与最佳实践》内容丰富、讲解深入,非常适合数据库开发人员、数据库管理人员以及其他数据库从业人员阅读,同时也是面向广大数据库爱好者的实用参考书。
目 录:
第一篇关系数据库设计
第1章数据库设计概述
1.1数据库概述
1.1.1关系数据库管理系统
1.1.2关系数据库
1.1.3结构化查询语言SQL
1.2数据库设计的相关知识
1.2.1商业知识和沟通技能
1.2.2数据库设计辅助工具
1.2.3″选课系统”概述
1.2.4定义问题域
1.2.5编码规范
1.3E-R图
1.3.1实体和属性
1.3.2关系
1.3.3E-R图的设计原则
1.4关系数据库设计
1.4.1为每个实体建立一张数据库表
1.4.2为每张表定义一个主键
1.4.3增加外键表示一对多关系
1.4.4建立新表表示多对多关系
1.4.5为字段选择合适的数据类型
1.4.6定义约束(constraint)条件
1.4.7评价数据库表设计的质量
1.4.8使用规范化减少数据冗余
1.4.9避免数据经常发生变化
习题
第二篇MySQL基础
第2章MySQL基础知识
2.1MySQL概述
2.1.1MySQL的特点
2.1.2MySQL服务的安装
2.1.3MySQL服务的配置
2.1.4启动与停止MySQL服务
2.1.5MySQL配置文件
2.1.6MySQL客户机
2.1.7连接MySQL服务器
2.2字符集以及字符序设置
2.2.1字符集及字符序概念
2.2.2MySQL字符集与字符序
2.2.3MySQL字符集的转换过程
2.2.4MySQL字符集的设置
2.2.5SQL脚本文件
2.3MySQL数据库管理
2.3.1创建数据库
2.3.2查看数据库
2.3.3显示数据库结构
2.3.4选择当前操作的数据库
2.3.5删除数据库
2.4MySQL表管理
2.4.1MyISAM和InnoDB存储引擎
2.4.2设置默认的存储引擎
2.4.3创建数据库表
2.4.4显示表结构
2.4.5表记录的管理
2.4.6InnoDB表空间
2.4.7删除表
2.5系统变量
2.5.1全局系统变量与会话系统变量
2.5.2查看系统变量的值
2.5.3设置系统变量的值
2.6MySQL数据库备份和恢复
习题
第3章MySQL表结构的管理
3.1MySQL数据类型
3.1.1MySQL整数类型
3.1.2MySQL小数类型
3.1.3MySQL字符串类型
3.1.4MySQL日期类型
3.1.5MySQL复合类型
3.1.6MySQL二进制类型
3.1.7选择合适的数据类型
3.2创建表
3.2.1设置约束
3.2.2设置自增型字段
3.2.3其他选项的设置
3.2.4创建”选课系统”数据库表
3.2.5复制一个表结构
3.3修改表结构
3.3.1修改字段相关信息
3.3.2修改约束条件
3.3.3修改表的其他选项
3.3.4修改表名
3.4删除表
3.5索引
3.5.1理解索引
3.5.2索引关键字的选取原则
3.5.3索引与约束
3.5.4创建索引
3.5.5删除索引
习题
第4章表记录的更新操作
4.1表记录的插入
4.1.1使用insert语句插入新记录
4.1.2更新操作与字符集
4.1.3关于自增型字段
4.1.4批量插入多条记录
4.1.5使用insert…select插入结果集
4.1.6使用replace插入新记录
4.2表记录的修改
4.3表记录的删除
4.3.1使用delete删除表记录
4.3.2使用truncate清空表记录
4.4MySQL特殊字符序列
习题
第5章表记录的检索
5.1select语句概述
5.1.1使用select子句指定字段列表
5.1.2使用谓词过滤记录
5.1.3使用from子句指定数据源
5.1.4多表连接
5.2使用where子句过滤结果集
5.2.1使用单一的条件过滤结果集
5.2.2is NULL运算符
5.2.3select语句与字符集
5.2.4使用逻辑运算符
5.2.5使用like进行模糊查询
5.3使用order by子句对结果集排序
5.4使用聚合函数汇总结果集
5.5使用group by子句对记录分组统计
5.5.1group by子句与聚合函数
5.5.2group by子句与having子句
5.5.3group by子句与group_concat()函数
5.5.4group by子句与with rollup选项
5.6合并结果集
5.7子查询
5.7.1子查询与比较运算符
5.7.2子查询与in运算符
5.7.3子查询与exists逻辑运算符
5.7.4子查询与any运算符
5.7.5子查询与all运算符
5.8选课系统综合查询
5.9使用正则表达式模糊查询
5.10全文检索
5.10.1全文检索的简单应用
5.10.2全文检索方式
5.10.3布尔检索模式的复杂应用
5.10.4MySQL全文检索的注意事项
5.10.5InnoDB表的全文检索
习题
第三篇MySQL编程
第6章MySQL编程基础
6.1MySQL编程基础知识
6.1.1常量
6.1.2用户自定义变量
6.1.3运算符与表达式
6.1.4begin-end语句块
6.1.5重置命令结束标记
6.2自定义函数
6.2.1创建自定义函数的语法格式
6.2.2函数的创建与调用
6.2.3函数的维护
6.2.4条件控制语句
6.2.5循环语句
6.3系统函数
6.3.1数学函数
6.3.2字符串函数
6.3.3数据类型转换函数
6.3.4条件控制函数
6.3.5系统信息函数
6.3.6日期和时间函数
6.3.7其他常用的MySQL函数
6.4中文全文检索的模拟实现
习题
第7章视图与触发器
7.1视图
7.1.1创建视图
7.1.2查看视图的定义
7.1.3视图在”选课系统”中的应用
7.1.4视图的作用
7.1.5删除视图
7.1.6检查视图
7.1.7local与cascade检查视图
7.2触发器
7.2.1准备工作
7.2.2使用触发器实现检查约束
7.2.3使用触发器维护冗余数据
7.2.4使用触发器模拟外键级联选项
7.2.5查看触发器的定义
7.2.6删除触发器
7.2.7使用触发器的注意事项
7.3临时表
7.3.1临时表概述
7.3.2临时表的创建、查看与删除
7.3.3″选课系统”中临时表的使用
7.3.4使用临时表的注意事项
7.4派生表(derived table)
7.5子查询、视图、临时表、派生表
习题
第8章存储过程与游标
8.1存储过程
8.1.1创建存储过程的语法格式
8.1.2存储过程的调用
8.1.3″选课系统”的存储过程
8.1.4查看存储过程的定义
8.1.5删除存储过程
8.1.6存储过程与函数的比较
8.2错误触发条件和错误处理
8.2.1自定义错误处理程序
8.2.2自定义错误触发条件
8.2.3自定义错误处理程序说明
8.3游标
8.3.1使用游标
8.3.2游标在”选课系统”中的使用
8.4预处理SQL语句
8.4.1预处理SQL语句使用步骤
8.4.2″选课系统”中预处理SQL语句的使用
8.4.3预处理SQL语句的复杂应用
8.4.4静态SQL语句与预处理SQL语句
8.5存储程序的说明
习题
第9章事务机制与锁机制
9.1事务机制
9.1.1事务机制的必要性
9.1.2关闭MySQL自动提交
9.1.3回滚
9.1.4提交
9.1.5事务
9.1.6保存点
9.1.7″选课系统”中的事务
9.2锁机制
9.2.1锁机制的必要性
9.2.2MySQL锁机制的基础知识
9.2.3MyISAM表的表级锁
9.2.4InnoDB表的行级锁
9.2.5″选课系统”中的行级锁
9.2.6InnoDB表的意向锁
9.2.7InnoDB行级锁与索引之间的关系
9.2.8间隙锁与死锁
9.2.9死锁与锁等待
9.3事务的ACID特性
9.3.1事务的ACID特性
9.3.2事务的隔离级别与并发问题
9.3.3设置事务的隔离级别
9.3.4使用间隙锁避免幻读现象
9.4事务与锁机制注意事项
习题
第四篇综合实训
第10章网上选课系统的开发
10.1PHP预备知识
10.1.1为何选用B/S结构以及PHP脚本语言
10.1.2PHP脚本语言概述
10.1.3PHP脚本程序的工作流程
10.1.4Web服务器的部署
10.1.5注意事项
10.2软件开发生命周期SDLC
10.3网上选课系统的系统规划
10.3.1网上选课系统的目标
10.3.2网上选课系统的可行性分析
10.3.3网上选课系统的项目进度表
10.3.4网上选课系统的人员分工
10.4网上选课系统的系统分析
10.4.1网上选课系统的功能需求分析
10.4.2网上选课系统的非功能需求分析
10.5网上选课系统的系统设计
10.6网上选课系统的系统实施
10.6.1准备工作
10.6.2制作PHP连接MySQL服务器函数
10.6.3制作PHP权限系统函数
10.6.4首页index.php的开发
10.6.5教师注册模块的开发
10.6.6登录模块的开发
10.6.7注销模块的开发
10.6.8添加班级模块的开发
10.6.9学生注册模块的开发
10.6.10密码重置模块
10.6.11申报课程模块
10.6.12课程列表显示模块
10.6.13审核申报课程
10.6.14取消已审核课程
10.6.15浏览自己申报的课程
10.6.16删除课程
10.6.17学生选修或者调换已经审核的课程
10.6.18查看自己选修的课程
10.6.19取消选修课程
10.6.20查看课程的学生信息列表
10.6.21查看选修人数少于30人的课程信息
10.7界面设计与MVC模式
10.8网上选课系统的测试
习题
第五篇MySQL管理及维护
第11章MySQL日志与事件
11.1MySQL日志
11.1.1数据皆需要缓存
11.1.2MySQL错误日志
11.1.3MySQL普通查询日志
11.1.4MySQL慢查询日志
11.1.5MySQL慢查询日志的查看
11.2二进制日志
11.2.1启动二进制日志
11.2.2二进制日志文件内容的查看
11.2.3获取当前的二进制日志文件及偏移位置
11.2.4使用二进制日志恢复数据库
11.2.5与MySQL二进制日志有关的参数
11.2.6二进制日志的清理
11.3InnoDB事务日志
11.4日志文件的备份
11.5MySQL事件
11.5.1创建MySQL事件
11.5.2开启MySQL事件调度器
11.5.3查看MySQL事件的定义
11.5.4删除MySQL事件的定义
习题
第12章MySQL备份与恢复
12.1备份与恢复概述
12.1.1防止数据丢失的方法
12.1.2数据备份概述
12.2逻辑备份与逻辑恢复
12.2.1使用select…into outfile…备份表数据
12.2.2恢复表数据
12.2.3使用mysqldump备份数据库
12.2.4逻辑备份综合示例
12.2.5二进制日志恢复数据库的综合示例
12.3物理备份与热备份
12.3.1物理备份的所需文件
12.3.2MyISAM表物理备份、热备份工具
12.3.3InnoDB表物理备份、热备份工具
12.3.4Xtrabackup的工作原理
12.3.5使用Xtrabackup实现完全备份与增量备份
12.3.6使用Xtrabackup实现数据库恢复
12.4MySQL复制(replication)
12.4.1MySQL复制的实现原理
12.4.2MySQL复制的实现
12.4.3复制线程的状态
12.4.4与复制有关的文件
12.4.5复制的配置
12.4.6MySQL复制模式
12.4.7自增型字段冲突问题
12.4.8事件损坏
12.4.9小结
12.5备份策略
习题
第13章MySQL安全管理
13.1MySQL安全管理
13.2MySQL账户与权限表
13.2.1grant命令语法格式
13.2.2创建MySQL服务实例级别的账户
13.2.3创建MySQL数据库级别的账户
13.2.4创建MySQL表级别的账户
13.2.5创建MySQL字段级别的账户
13.2.6创建MySQL存储程序级别的账户
13.2.7注意事项
13.2.8host权限表
13.3MySQL账户管理
13.3.1使用create user创建MySQL账户
13.3.2查看MySQL账户信息
13.3.3删除已有账户
13.3.4修改已有账户的信息
13.3.5MySQL账户的资源次数限制
13.3.6使用更新语句修改MySQL账户信息
13.3.7权限的生效时机
13.4MySQL安全管理的注意事项
13.4.1MySQL账户名重名问题
13.4.2root账号密码丢失问题
13.4.3消除MySQL安全隐患
13.4.4MySQL安全管理的其他注意事项
习题
第14章MySQL优化
14.1基础知识
14.1.1影响数据库系统性能的组件
14.1.2参数信息与状态信息
14.1.3缓存机制
14.1.4缓存的分类
14.1.5超时
14.2MySQL连接的优化
14.3缓存的优化
14.3.1查询缓存Query Cache
14.3.2结果集缓存
14.3.3排序缓存
14.3.4join连接缓存
14.3.5表缓存Cache与表结构定义缓存Cache
14.3.6表扫描缓存buffer
14.3.7MyISAM索引缓存buffer
14.3.8日志缓存
14.3.9预读机制
14.3.10延迟更新
14.3.11内存表与临时表
14.4InnoDB优化
14.4.1InnoDB缓存池
14.4.2InnoDB缓存池内部结构
14.4.3InnoDB缓存池预热
14.4.4InnoDB缓存池的状态信息
14.4.5常见的InnoDB参数设置
14.4.6InnoDB实时监控
14.5优化表
14.5.1优化表结构
14.5.2表的拆分
14.5.3分区
14.5.4表分析与表检查
14.5.5NULL值对统计信息的影响
14.5.6记录的格式
14.6SQL语句优化
14.6.1了解SQL的执行频率
14.6.2定位执行效率较低的SQL语句
14.6.3分析select语句
14.6.4索引与select语句
14.6.5分页与select
14.6.6SQL语句其他注意事项
14.6.7profiling性能分析工具
14.7锁资源的优化
14.7.1表级锁资源竞争
14.7.2表级锁资源竞争的解决方案
14.7.3行级锁的资源竞争
14.7.4行级锁资源竞争的解决方案
14.7.5禁用InnoDB间隙锁
14.7.6事务监控与锁监控
14.7.7元数据锁metadata locks
第15章MySQL Cluster
15.1MySQL Cluster简介
15.1.1MySQL集群的组成
15.1.2MySQL集群架构
15.2MySQL Cluster环境搭建
15.2.1准备工作
15.2.2数据节点的配置
15.2.3SQL节点的配置
15.2.4管理节点的配置
15.2.5MySQL集群的启动
15.2.6集群测试
参考文献
《MySQL核心技术与最佳实践》(孔祥盛 编着)【文字版_PDF电子书_下载】大小:48MB已经过安全软件检测无毒,请您放心下载。浏览器不支持脚本!购买本书:当当图书商城 | | 孔夫子旧书
摘要:在数据库技术日新月异的今天,MySQL凭借其开源、高效与稳定的特性,成为开发者手中的利器。孔祥盛编著的《MySQL核心技术与最佳实践》一书,并非简单的语法罗列,而是一部旨在打通理论与实践壁垒的实战指南。本书从基础架构出发,深入索引优化、查询调优、事务控制及高可用架构等核心议题,将复杂的技术原理转化为可落地的解决方案。它不仅是初学者的启蒙导师,更是进阶者突破瓶颈的案头宝典。通过剖析大量真实案例,作者引导读者建立起系统化的数据库思维,从而在项目开发中做到游刃有余。本文将从四个维度深度解析这部著作,揭示其如何帮助读者从会用到精通,真正掌握MySQL的精髓。
1、理论与实践深度融合
本书开篇便摒弃了传统教材枯燥的理论堆砌,而是将MySQL的体系架构、存储引擎等基础概念与具体的操作场景紧密结合。作者没有孤立地讲解InnoDB与MyISAM的区别,而是通过一个电商订单系统的例子,让读者直观感受到不同引擎在事务支持、锁粒度上的实际表现。这种“先见森林,后见树木”的编排方式,使得读者在接触抽象概念时,脑中已经有了清晰的应用图景。
每一章节的技术点都配有精心设计的实验环节。例如在讲解索引时,作者不仅阐述了B+树的数据结构原理,更通过对比有无索引下的查询执行计划,让读者亲眼见证性能的百倍差距。这种从理论推导到实践验证的闭环学习模式,极大加深了读者对知识点的理解,避免了“一看就会,一用就废”的窘境。
更为难得的是,作者在书中反复强调“知其然更要知其所以然”。在分析慢查询时,他引导读者去解读Explain输出中的关键指标,而不是仅仅给出一个优化模板。这种授人以渔的方式,培养的是读者独立分析与解决问题的能力,这正是专业工程师与普通使用者之间的核心区别。
2、索引优化实战指南
索引是数据库性能的基石,本书用大量篇幅构建了一套完整的索引优化方法论。作者首先纠正了“索引越多越好”的常见误区,通过分析索引维护成本与查询收益的平衡关系,提出了“高选择性、低频更新”的索引设计原则。书中详细剖析了联合索引的最左前缀法则,并辅以多个业务场景下的索引创建案例。
针对日常开发中棘手的“索引失效”问题,本书给出了系统性的诊断思路。从隐式类型转换、函数操作到不等于与模糊查询,作者逐一拆解了导致索引失效的常见原因,并提供了对应的改写策略。例如,对于范围查询导致的后续字段失效问题,书中展示了如何通过改写查询逻辑或调整索引顺序来规避。
书中还专门开辟章节讲解覆盖索引与索引下推等高级优化技术。通过对比普通查询与覆盖索引的IO消耗,作者揭示了如何通过设计“索引即数据”的查询模式,来避免回表操作带来的性能损耗。这些实战技巧并非纸上谈兵,每一个都源自作者在真实项目中的经验沉淀。
3、SQL调优与架构设计
本书将SQL语句的优化提升到了艺术的高度,从执行计划分析入手,系统性地讲解了子查询优化、JOIN连接优化以及排序分组优化的核心策略。作者特别强调了“小表驱动大表”的核心理念,并通过Nested-Loop Join与Hash Join的对比,帮助读者理解不同连接算法下的性能差异。
在架构设计层面,本书并未止步于单机性能的极致压榨,而是深入探讨了读写分离、分库分表等分布式解决方案。作者详细阐述了主从复制的原理与延迟问题,并给出了基于Proxy与中间件的多种架构实现方案。这些内容对于构建高并发、高可用的企业级系统具有极高的参考价值。
书中还涵盖了MySQL的锁机制与事务隔离级别的实战应用。通过分析“幻读”、“不可重复读”等异常现象的产生原理,作者引导读者根据业务对数据一致性的要求,合理选择隔离级别并设计加锁策略。这些内容帮助开发者在保证数据正确性的同时,最大限度地提升系统的并发处理能力。
4、故障排查与性能监控
故障处理能力是区分数据库管理员水平的关键,本书专门设置章节传授系统化的排查方法论。从慢查询日志的配置与分析,到性能模式与进程列表的实时监控,作者构建了一套从发现问题到定位根因的完整工作流。书中通过一个“数据库CPU飙升”的真实案例,完整演示了如何通过工具链逐步锁定问题SQL。
针对备份与恢复这一数据库管理的生命线,本书给出了详尽的方案对比与操作指南。从逻辑备份工具mysqldump到物理备份工具XtraBackup,作者不仅讲解了各自的适用场景,还重点强调了备份策略的制定原则,如全量备份与增量备份的结合周期、备份数据的验证机制等。这些内容是企业数据安全的最后一道防线。
书中还介绍了MySQL的日志系统,包括错误日志、二进制日志与通用查询日志的用途。通过分析二进制日志,读者可以掌握数据恢复与主从同步的核心原理。作者还分享了如何利用这些日志进行审计与回滚操作,从而在数据误操作发生时能够快速止损。这些实战技能让读者在面对突发状况时能够从容应对。
总结:孔祥盛编著的《MySQL核心技术与最佳实践》是一本值得反复研读的实战型佳作。它完美地平衡了理论深度与实践广度,将数据库技术从书本上的抽象概念,转化为读者手中解决实际问题的利器。无论是刚入门的开发者,还是寻求突破的资深工程师,都能从中汲取养分。
本书的价值不仅在于传授了具体的命令与技巧,更在于它塑造了一种系统化的数据库思维模式。它教会读者如何从业务需求出发,设计出高性能、高可用的数据存储方案。通过阅读本书,你将不再是被动地使用数据库,而是能够主动驾驭它,让数据成为驱动业务增长的核心引擎。
本文由nayona.cn整理
联系我们

关注公众号

微信扫一扫
支付宝扫一扫
