标题：深入浅出MySQL数据库开发、优化与管理维护
编辑推荐
《深入浅出MySQL数据库开发、优化与管理维护》的作者都是MySQL方面的资深DBA。《深入浅出MySQL数据库开发、优化与管理维护》不但融入了他们丰富的工作经验和多年的使用心得，还提供了大量来自工作现场的实例，具有很强的实战性和可操作性。
《深入浅出MySQL数据库开发、优化与管理维护》适用于数据库管理人员、数据库开发人员、系统维护人员、数据库初学者及其他数据库从业人员，也可以作为大中专院校相关专业师生的参考用书和相关培训机构的培训教材。
作者简介
唐汉明，网易公司技术部DBA组经理。2000年加入网易公司，历任技术部高级DBA、软件开发组经理、DBA级经理等职位，负责多个大型核心数据库的管理维护，并作为核心成员参加了许多重要项目的设计实施，在数据库开发及管理维护等方面具有丰富的经验。
目录
第1部分　基础篇
第1章　MySQL的安装与配置　3
1.1　MySQL的下载　3
1.1.1　在Windows平台下下载MySQL　4
1.1.2　在Linux平台下下载MySQL　4
1.2　MySQL的安装　7
1.2.1　在Windows平台下安装MySQL　7
1.2.2　在Linux平台下安装MySQL　11
1.3　MySQL的配置　12
1.3.1　Windows平台下配置MySQL　12
1.3.2　Linux平台下配置MySQL　20
1.4　启动和关闭MySQL服务　20
1.4.1　在Windows平台下启动和关闭MySQL服务　21
1.4.2　在Linux平台下启动和关闭MySQL服务　22
1.5　小结　23
第2章　SQL基础　25
2.1　SQL简介　25
2.2　(My)SQL使用入门　25
2.2.1　SQL分类　25
2.2.2　DDL语句　26
2.2.3　DML语句　35
2.2.4　DCL语句　51
2.3　帮助的使用　52
2.3.1　按照层次看帮助　53
2.3.2　快速查阅帮助　54
2.3.3　常用的网络资源　55
2.4　小结　55
第3章　MySQL支持的数据类型　57
3.1　数值类型　57
3.2　日期时间类型　64
3.3　字符串类型　71
3.3.1　CHAR和VARCHAR类型　72
3.3.2　BINARY和VARBINARY类型　72
3.3.3　ENUM类型　73
3.3.4　SET类型　74
3.4　小结　74
第4章　MySQL中的运算符　77
4.1　算术运算符　77
4.2　比较运算符　78
4.3　逻辑运算符　82
4.4　位运算符　83
4.5　运算符的优先级　85
4.6　小结　86
第5章　常用函数　87
5.1　字符串函数　87
5.2　数值函数　90
5.3　日期和时间函数　93
5.4　流程函数　97
5.5　其他常用函数　100
5.6　小结　103
第6章　图形化工具的使用　105
6.1　MySQLAdministrator　105
6.1.1　连接管理　106
6.1.2　健康检查　107
6.1.3　备份管理　108
6.1.4　Catalogs　109
6.2　MySQLQueryBrower　110
6.3　phpMyAdmin　111
6.3.1　数据库管理　112
6.3.2　数据库对象管理　113
6.3.3　权限管理　113
6.3.4　导入导出数据　114
6.4　小结　116
第2部分　开发篇
第3部分　优化篇
第4部分　管理维护篇
…… 
第2部分　开发篇　　第7章　表类型（存储引擎）的选择　　　7.1　MySQL存储引擎概述　　　7.2　各种存储引擎的特性　　　7.2.1　MyISAM　　　7.2.2　InnoDB　　　7.2.3　MEMORY　　　7.2.4　MERGE　　　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.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　小结　　　第3部分　优化篇　　第17章　常用SQL技巧和常见问题　　　17.1　正则表达式的使用　　　17.2　巧用RAND（）提取随机行　　　17.3　利用GROUP BY的WITH ROLLUP子句做统计　　　17.4　用BIT GROUP FUNCTIONS做统计　　　17.5　数据库名、表名大小写问题　　　17.6　使用外键需要注意的问题　　　17.7　小结　　　第18章　SQL优化　　　18.1　优化SQL语句的一般步骤　　　18.1.1　通过show status命令了解各种SQL的执行频率　　　18.1.2　定位执行效率较低的SQL语句　　　18.1.3　通过EXPLAIN分析低效SQL的执行计划　　　18.1.4　确定问题并采取相应的优化措施　　　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　优化GROUP BY语句　　　18.4.4　优化ORDER BY语句　　　18.4.5　优化嵌套查询　　　18.4.6　MySQL如何优化OR条件　　　18.4.7　使用SQL提示　　　18.5　小结　　　第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　nnoDB的行锁模式及加锁方法　　　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 Server参数　　　21.2　影响MySQL性能的重要参数　　　21.2.1　key_buffer_size的设置　　　21.2.2　table_cache的设置　　　21.2.3　innodb_buffer_pool_size的设置　　　21.2.4　innodb_flush_log_at_trx_commit的设置　　　21.2.5　innodb_additional_mem_pool_size的设置　　　21.2.6　innodb_lock_wait_timeout的设置　　　21.2.7　innodb_support_xa的设置　　　21.2.8　innodb_log_buffer_size的设置　　　21.2.9　innodb_log_file_size的设置　　　21.3　小结　　　第22章　磁盘I/O问题　　　22.1　使用磁盘阵列　　　22.1.1　常见RAID级别及其特性　　　22.1.2　如何选择RAID级别　　　22.1.3　虚拟文件卷或软RAID　　　22.2　使用Symbolic Links分布I/O　　　22.3　禁止操作系统更新文件的atime属性　　　22.4　用裸设备（Raw Device）存放InnoDB的共享表空间　　　22.5　小结　　　第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　小结　　　第4部分　管理维护篇　　第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.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.4.3　其他选项　　　26.5　小结　　　第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.2　主要复制启动选项　　　29.2.1　log-slave-updates　　　29.2.2　master-connect-retry　　　29.2.3　read-only　　　29.2.4　指定复制的数据库或者表　　　29.2.5　slave-skip-errors　　　29.3　日常管理维护　　　29.3.1　查看从服务器状态　　　29.3.2　主从服务器同步维护　　　29.3.3　从服务器复制出错的处理　　　29.3.4　log event entry exceeded max_allowed_packet的处理　　　29.3.5　多主复制时的自增长变量冲突问题　　　29.3.6　查看从服务器的复制进度　　　29.4　切换主从服务器　　　29.5　小结　　　第30章　MySQL Cluster　　　30.1　MySQL Cluster架构　　　30.2　MySQL Cluster的配置　　　30.2.1　MySQL Cluster的版本支持　　　30.2.2　管理节点配置步骤　　　30.2.3　SQL节点和数据节点的配置　　　30.3　开始使用Cluster　　　30.3.1　Cluster的启动　　　30.3.2　Cluster的测试　　　30.3.3　Cluster的关闭　　　30.4　维护Cluster　　　30.4.1　数据备份　　　30.4.2　数据恢复　　　30.4.3　日志管理　　　30.5　小结　　　第31章　MySQL常见问题和应用技巧　　　31.1　忘记MySQL的root密码　　　31.2　如何处理MyISAM存储引擎的表损坏　　　31.2.1　方法一　　　31.2.2　方法二　　　31.3　MyISAM表超过4GB无法访问的问题　　　31.4　数据目录磁盘空间不足的问题　　　31.4.1　对于MyISAM存储引擎的表　　　31.4.2　对于InnoDB存储引擎的表　　　31.5　DNS反向解析的问题　　　31.6　mysql.sock丢失后如何连接数据库　　　31.7　同一台服务器运行多个MySQL数据库　　　31.8　客户端怎么访问内网数据库　　　31.9　小结