这书对于 MySQL高级客户,详尽解读 MySQL高級应用技术性。书中详细说明了每一个知识结构图及其数据库实际操作的方式和方法。这书重视实战实际操作,协助读者由浅入深地把握 MySQL中的各类高級技术性。 这书关键括 MySQL架构详细介绍、MySQL管理权限与安全性、MySQL备份与还原、MySQL的高級特性、MySQL锁住体制、应用 MySQL Workbench管理方法数据库、SQL性能提升、MySQL网络服务器性能提升、MySQL性能网络监控、MySQL Replication、MySQL Cluster实战、公司中 MySQL的高可用性架构实战。另外,这书还出示了全部范例的源代码,读者能够立即查询和启用。 这书合适有一定基本的 MySQL数据库学生,MySQL数据库开发者和 MySQL数据库技术人员,另外也可以做为高等学校和培训机构有关技术专业老师学生的课堂教学参照用书。
目录
- 第1章 MySQL架构介绍........... 1
- 1.1 MySQL架构... 1
- 1.1.1 MySQL物理文件的组成........... 2
- 1.1.2 MySQL各逻辑块简介................ 4
- 1.1.3 MySQL各逻辑块协调工作....... 6
- 1.2 MySQL存储引擎概述....... 7
- 1.3 MySQL各种存储引擎的特性.............. 10
- 1.3.1 MyISAM............... 10
- 1.3.2 InnoDB................... 12
- 1.3.3 MEMORY.............. 15
- 1.3.4 MERGE................... 18
- 1.3.5 BerkeleyDB存储引擎............... 20
- 1.4 MySQL工具. 21
- 1.4.1 MySQL命令行实用程序......... 21
- 1.4.2 MySQL Workbench................... 33
- 1.5 本章小结....... 34
- 第2章MySQL权限与安全..... 35
- 2.1 权 限 表....... 35
- 2.1.1 user表.................... 35
- 2.1.2 db表和host表.... 37
- 2.1.3 tables_priv表和columns_priv表................ 39
- 2.1.4 procs_priv表........ 40
- 2.2 账户管理....... 41
- 2.2.1 登录和退出MySQL服务器.... 41
- 2.2.2 新建普通用户....... 43
- 2.2.3 删除普通用户....... 47
- 2.2.4 root用户修改自己的密码....... 48
- 2.2.5 root用户修改普通用户密码... 50
- 2.2.6 普通用户修改密码.................... 51
- 2.2.7 root用户密码丢失的解决办法..................... 51
- 2.3 权限管理....... 53
- 2.3.1 MySQL的各种权限.................. 53
- 2.3.2 授权.. 55
- 2.3.3 收回权限............... 57
- 2.3.4 查看权限............... 58
- 2.4 访问控制....... 59
- 2.4.1 连接核实阶段....... 59
- 2.4.2 请求核实阶段....... 60
- 2.5 MySQL的安全问题.......... 61
- 2.5.1 操作系统相关的安全问题....... 61
- 2.5.2 数据库相关的安全问题........... 62
- 2.6 使用SSL安全连接........... 71
- 2.7 综合管理用户权限............ 77
- 2.8 小结................ 80
- 第3章数据备份与还原.......... 81
- 3.1 数据备份....... 81
- 3.1.1 使用mysqldump命令备份...... 81
- 3.1.2 直接复制整个数据库目录....... 88
- 3.1.3 使用mysqlhotcopy工具快速备份.............. 88
- 3.2 数据还原....... 89
- 3.2.1 使用MySQL命令还原............. 89
- 3.2.2 直接复制到数据库目录........... 90
- 3.2.3 mysqlhotcopy快速恢复........... 90
- 3.3 数据库迁移... 90
- 3.3.1 相同版本的MySQL数据库之间的迁移.... 91
- 3.3.2 不同版本的MySQL数据库之间的迁移.... 91
- 3.3.3 不同数据库之间的迁移........... 92
- 3.4 表的导出和导入................ 92
- 3.4.1 使用SELECT…INTO OUTFILE导出文本文件............... 92
- 3.4.2 用mysqldump命令导出文本文件............... 95
- 3.4.3 用MySQL命令导出文本文件98
- 3.4.4 使用LOAD DATA INFILE方式导入文本文件............. 101
- 3.4.5 使用mysqlimport命令导入文本文件....... 103
- 3.5 综合实例——数据的备份与恢复...... 105
- 3.6 小结.............. 109
- 第4章MySQL的高级特性... 110
- 4.1 MySQL 查询缓存........... 110
- 4.1.1 认识查询缓存..... 110
- 4.1.2 监控和维护查询缓存.............. 115
- 4.1.3 如何检查缓存命中率.............. 117
- 4.1.4 优化查询缓存..... 118
- 4.2 合并表和分区表.............. 119
- 4.2.1 合并表.................. 119
- 4.2.2 分区表.................. 121
- 4.3 事务控制..... 131
- 4.4 MySQL分布式事务........ 135
- 4.4.1 了解分布式事务的原理......... 135
- 4.4.2 分布式事务的语法.................. 136
- 4.5 小结.............. 137
- 第5章MySQL锁定机制....... 138
- 5.1 MySQL锁定机制概述... 138
- 5.2 MyISAM表级锁............. 143
- 5.2.1 MyISAM表级锁的锁模式.... 143
- 5.2.2 获取MyISAM表级锁的争用情况............ 145
- 5.2.3 MyISAM表级锁加锁方法.... 146
- 5.2.4 MyISAM Concurrent Insert的特性........... 148
- 5.2.5 MyISAM表锁优化建议........ 150
- 5.3 InnoDB行级锁................ 150
- 5.3.1 InnoDB行级锁模式................ 150
- 5.3.2 获取InnoDB行级锁的争用情况............... 155
- 5.3.3 InnoDB行级锁的实现方法... 157
- 5.3.4 间隙锁(Net-Key锁)........... 162
- 5.3.5 InnoDB 在不同隔离级别下加锁的差异.. 163
- 5.3.6 InnoDB 存储引擎中的死锁.. 164
- 5.3.7 InnoDB行级锁优化建议....... 166
- 5.4 小结.............. 167
- 第6章使用MySQL Workbench 管理数据库.................... 168
- 6.1 MySQL Workbench简介..................... 168
- 6.1.1 MySQL Workbench 的概述.. 168
- 6.1.2 MySQL Workbench 的优势.. 169
- 6.1.3 MySQL Workbench 的安装.. 169
- 6.2 SQL Development的基本操作........... 171
- 6.2.1 创建数据库连接171
- 6.2.2 创建新的数据库173
- 6.2.3 创建和删除新的数据表......... 174
- 6.2.4 添加、修改表记录.................. 177
- 6.2.5 查询表记录......... 178
- 6.2.6 修改表结构......... 178
- 6.3 Data Modeling的基本操作................. 179
- 6.3.1 建立ER模型...... 179
- 6.3.2 导入ER模型...... 184
- 6.4 Server Administration的基本操作..... 185
- 6.4.1 管理MySQL用户................... 186
- 6.4.2 备份MySQL数据库............... 188
- 6.4.3 还原MySQL数据库............... 191
- 6.5 小结.............. 192
- 第7章SQL性能优化........... 193
- 7.1 优化简介..... 193
- 7.2 MySQL Query Optimizer概述............. 194
- 7.3 SQL 语句优化的基本思路.................. 194
- 7.4 利用EXPLAIN分析查询语句............ 196
- 7.4.1 EXPLAIN语句的基本语法.... 196
- 7.4.2 EXPLAIN语句分析实例........ 208
- 7.5 利用Profiling分析查询语句............... 212
- 7.6 合理地使用索引.............. 216
- 7.6.1 索引对查询速度的影响......... 216
- 7.6.2 如何使用索引查询.................. 217
- 7.7 不同类型SQL语句优化方法............. 220
- 7.7.1 优化INSERT语句................... 220
- 7.7.2 优化ORDER BY语句............. 221
- 7.7.3 优化GROUP BY语句............. 222
- 7.7.4 优化嵌套查询..... 223
- 7.7.5 优化OR条件...... 224
- 7.7.6 优化插入记录的速度.............. 226
- 7.8 优化数据库结构.............. 228
- 7.8.1 将字段很多的表分解成多个表.................. 228
- 7.8.2 增加中间表......... 230
- 7.8.3 增加冗余字段..... 231
- 7.9 分析表、检查表和优化表................... 232
- 7.9.1 分析表.................. 232
- 7.9.2 检查表.................. 233
- 7.9.3 优化表.................. 233
- 7.10 小结............ 234
- 第8章MySQL服务器性能优化.................. 235
- 8.1 MySQL源码安装的性能优化............ 235
- 8.2 MySQL服务器配置优化..................... 238
- 8.2.1 查看性能参数的方法.............. 238
- 8.2.2 key_buffer_size的设置.......... 243
- 8.2.3 table_cache的设置................. 246
- 8.2.4 内存参数的设置248
- 8.2.5 日志和事务参数的设置......... 252
- 8.2.6 存储和I/O相关参数的设置.. 253
- 8.2.7 其他重要参数的设置.............. 254
- 8.3 MySQL日志设置优化... 256
- 8.4 MySQL I/O设置优化..... 257
- 8.5 MySQL并发设置优化... 259
- 8.6 线程、Table Cache和临时表的优化261
- 8.6.1 线程的优化......... 261
- 8.6.2 关于table_cache相关的优化..................... 262
- 8.6.3 关于临时表的优化.................. 263
- 8.7 小结.............. 264
- 第9章MySQL 性能监控...... 265
- 9.1 基本监控系统方法.......... 265
- 9.1.1 ps命令................. 265
- 9.1.2 top命令............... 266
- 9.1.3 vmstat命令......... 268
- 9.1.4 mytop命令.......... 269
- 9.1.5 sysstat工具........ 272
- 9.2 开源监控利器Nagios实战................. 277
- 9.2.1 安装Nagios之前的准备工作..................... 277
- 9.2.2 安装Nagios主程序................ 279
- 9.2.3 整合Nagios到Apache服务280
- 9.2.4 安装Nagios插件包................ 284
- 9.2.5 监控服务器的CPU、负载、磁盘I/O使用情况........... 286
- 9.2.6 配置Nagios监控MySQL服务器.............. 291
- 9.3 MySQL监控利器Cacti实战.............. 293
- 9.3.1 Cacti工具的安装..................... 294
- 9.3.2 Cacti监控MySQL服务器..... 299
- 9.4 小结.............. 304
- 第10章MySQL Replication. 305
- 10.1 MySQL Replication概述.................... 305
- 10.2 Windows环境下的MySQL主从复制................. 306
- 10.2.1 复制前的准备工作................ 306
- 10.2.2 Windows环境下实现主从复制............... 306
- 10.2.3 Windows环境下主从复制测试............... 314
- 10.3 Linux环境下的MySQL复制............ 315
- 10.3.1 下载并安装MySQL 5.6........ 315
- 10.3.2 单机主从复制前的准备工作..................... 316
- 10.3.3 mysqld_multi实现单机主从复制............. 320
- 10.3.4 不同服务器之间实现主从复制................ 328
- 10.3.5 MySQL 主要复制启动选项329
- 10.3.6 指定复制的数据库或者表... 330
- 10.4 查看Slave的复制进度338
- 10.5 日常管理和维护............ 339
- 10.5.1 了解服务器的状态................ 339
- 10.5.2 服务器复制出错的原因....... 340
- 10.6 切换主从服务器............ 343
- 10.7 小结............ 347
- 第11章MySQL Cluster实战348
- 11.1 MySQL Cluster概述..... 348
- 11.1.1 MySQL Cluster基本概念..... 348
- 11.1.2 理解MySQL Cluster节点.... 349
- 11.2 Linux环境下MySQL Cluster安装和配置........... 350
- 11.2.1 安装MySQL Cluster 7.2.8软件................. 352
- 11.2.2 管理节点配置步骤................ 357
- 11.2.3 配置SQL节点和数据节点.. 358
- 11.3 管理MySQL Cluster..... 358
- 11.3.1 Cluster的启动.. 358
- 11.3.2 Cluster的测试.. 360
- 11.3.3 Cluster的关闭.. 363
- 11.4 维护MySQL Cluster..... 363
- 11.4.1 Cluster的日志的管理........... 366
- 11.4.2 Cluster的联机备份............... 367
- 11.4.3 Cluster的数据恢复............... 368
- 11.5 Windows操作系统中配置Cluster.. 369
- 11.6 小结............ 374
- 第12章企业中MySQL的高可用架构........ 375
- 12.1 MySQL高可用的简单介绍............... 375
- 12.2 MySQL主从复制.......... 375
- 12.2.1 MySQL主从架构设计.......... 376
- 12.2.2 配置环境........... 376
- 12.2.3 服务器的安装配置................ 376
- 12.2.4 LVS的安装配置..................... 379
- 12.3 MySQL DRBD HA...... 381
- 12.3.1 什么是DRBD... 381
- 12.3.2 MySQL DRBD HA架构设计.................. 382
- 12.3.3 配置环境........... 382
- 12.3.4 安装配置Heartbeat............... 383
- 12.3.5 安装配置DRBD..................... 385
- 12.4 Lvs Keepalived MySQL 单点写入主主同步方案.................. 388
- 12.4.1 配置环境........... 388
- 12.4.2 Lvs Keepalived的安装........ 393
- 12.4.3 Lvs Keepalived的配置........ 394
- 12.4.4 Master和Backup的启动.... 397
- 12.5 MMM高可用MySQL方案.............. 397
- 12.5.1 MMM的架构... 398
- 12.5.2 配置环境........... 398
- 12.5.3 MMM的安装... 402
- 12.5.4 Monitor服务器的配置......... 402
- 12.5.5 各个数据库服务器的配置... 404
- 12.5.6 MMM的管理... 404
- 12.6 小结 405