《深入浅出MySQL 数据库开发、优化与管理维护 第2版》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:唐汉明,翟振兴,关宝军,王洪权,黄潇著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2014
  • ISBN:9787115335494
  • 页数:635 页
图书介绍:本书分为入门篇、开发篇、优化篇、管理维护篇,介绍了MySQL的安装、MySQL基础操作、MySQL支持的数据类型/运算符、常用函数、图形化工具、存储引擎、视图、存储过程、触发器、索引、SQL优化、I/O问题、升级、备份恢复等内容。

第一部分 基础篇 2

1第1章 MySQL的安装与配置 2

1.1 MySQL的下载 2

1.1.1在Windows平台下下载MySQL 3

1.1.2在Linux平台下下载MySQL 3

1.2 MySQL的安装 6

1.2.1在Windows平台下安装MySQL 6

1.2.2在Linux平台下安装MySQL 10

1.3 MySQL的配置 11

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第2章 SQL基础 24

2.1 SQL简介 24

2.2 (My)SQL使用入门 24

2.2.1 SQL分类 24

2.2.2 DDL语句 25

2.2.3 DML语句 33

2.2.4 DCL语句 47

2.3帮助的使用 48

2.3.1按照层次看帮助 48

2.3.2快速查阅帮助 49

2.3.3常用的网络资源 50

2.4查询元数据信息 51

2.5小结 51

3第3章 MySQL支持的数据类型 52

3.1数值类型 52

3.2日期时间类型 58

3.3字符串类型 65

3.3.1 CHAR和VARCHAR类 66

3.3.2 BINARY和VARBINARY类型 66

3.3.3 ENUM类型 67

3.3.4 SET类型 68

3.4小结 68

4第4章 MySQL中的运算符 69

4.1算术运算符 69

4.2比较运算符 70

4.3逻辑运算符 73

4.4位运算符 75

4.5运算符的优先级 77

4.6小结 78

5第5章 常用函数 79

5.1字符串函数 79

5.2数值函数 82

5.3日期和时间函数 85

5.4流程函数 89

5.5其他常用函数 91

5.6小结 94

6第6章 图形化工具的使用 95

6.1 MySQL Workbench 95

6.1.1 SQL开发 95

6.1.2数据建模 105

6.1.3服务器管理 112

6.1.4 MySQL Utilities 120

6.2 phpMyAdmin 124

6.2.1数据库管理 124

6.2.2数据库对象管理 125

6.2.3权限管理 126

6.2.4导入导出数据 126

6.3小结 129

第二部分 开发篇 131

7第7章 表类型(存储引擎)的选择 131

7.1 MySQL存储引擎概述 131

7.2各种存储引擎的特性 133

7.2.1 MyISAM 134

7.2.2 InnoDB 135

7.2.3 MEMORY 140

7.2.4 MERGE 142

7.2.5 TokuDB 145

7.3如何选择合适的存储引擎 146

7.4小结 146

8第8章 选择合适的数据类型 147

8.1 CHAR与VARCHAR 147

8.2 TEXT与BLOB 148

8.3浮点数与定点数 152

8.4日期类型选择 154

8.5小结 155

9第9章 字符集 156

9.1字符集概述 156

9.2 Unicode简述 156

9.3汉字及一些常见字符集 158

9.4怎样选择合适的字符集 159

9.5 MySQL支持的字符集简介 160

9.6 MySQL字符集的设置 161

9.6.1服务器字符集和校对规则 162

9.6.2数据库字符集和校对规则 162

9.6.3表字符集和校对规则 163

9.6.4列字符集和校对规则 164

9.6.5连接字符集和校对规则 164

9.7字符集的修改步骤 164

9.8小结 165

10第10章 索引的设计和使用 166

10.1索引概述 166

10.2设计索引的原则 167

10.3 BTREE索引与HASH索引 168

10.4小结 170

11第11章 视图 171

11.1什么是视图 171

11.2视图操作 171

11.2.1创建或者修改视图 171

11.2.2删除视图 173

11.2.3查看视图 174

11.3小结 175

12第12章 存储过程和函数 176

12.1什么是存储过程和函数 176

12.2存储过程和函数的相关操作 176

12.2.1创建、修改存储过程或者函数 176

12.2.2删除存储过程或者函数 180

12.2.3查看存储过程或者函数 181

12.2.4变量的使用 182

12.2.5定义条件和处理 183

12.2.6光标的使用 186

12.2.7流程控制 187

12.2.8事件调度器 191

12.3小结 193

13第13章 触发器 195

13.1创建触发器 195

13.2删除触发器 198

13.3查看触发器 198

13.4触发器的使用 200

13.5小结 200

14第14章 事务控制和锁定语句 201

14.1 LOCK TABLE和UNLOCK TABLE 201

14.2事务控制 202

14.3分布式事务的使用 208

14.3.1分布式事务的原理 208

14.3.2分布式事务的语法 208

14.3.3存在的问题 210

14.4小结 213

15第15章 SQL中的安全问题 214

15.1 SQL注入简介 214

15.2应用开发中可以采取的应对措施 215

15.2.1 PrepareStatement+Bind-Variable 215

15.2.2使用应用程序提供的转换函数 217

15.2.3自己定义函数进行校验 217

15.3小结 218

16第16章 SQL Mode及相关问题 219

16.1 MySQL SQL Mode简介 219

16.2 SQL Mode的常见功能 221

16.3常用的SQL Mode 224

16.4 SQL Mode在迁移中如何使用 224

16.5小结 225

17第17章 MySQL分区 226

17.1分区概述 226

17.2分区类型 227

17.2.1 Range分区 229

17.2.2 List分区 231

17.2.3 Columns分区 232

17.2.4 Hash分区 235

17.2.5 Key分区 239

17.2.6子分区 240

17.2.7 MySQL分区处理NULL值的方式 241

17.3分区管理 243

17.3.1 RANGE&LIST分区管理 244

17.3.2 HASH&KEY分区管理 251

17.4小结 252

第三部分 优化篇 254

18第18章 SQL优化 254

18.1优化SQL语句的一般步骤 254

18.1.1通过show status命令了解各种SQL的执行频率 254

18.1.2定位执行效率较低的SQL语句 255

18.1.3通过EXPLAIN分析低效SQL的执行计划 256

18.1.4通过show profile分析SQL 262

18.1.5通过trace分析优化器如何选择执行计划 266

18.1.6确定问题并采取相应的优化措施 271

18.2索引问题 272

18.2.1索引的存储分类 272

18.2.2 MySQL如何使用索引 273

18.2.3查看索引使用情况 284

18.3两个简单实用的优化方法 284

18.3.1定期分析表和检查表 284

18.3.2定期优化表 286

18.4常用SQL的优化 287

18.4.1大批量插入数据 287

18.4.2优化INSERT语句 288

18.4.3优化ORDER BY语句 289

18.4.4优化GROUPBY语句 293

18.4.5优化嵌套查询 294

18.4.6 MySQL如何优化OR条件 295

18.4.7优化分页查询 297

18.4.8使用SQL提示 299

18.5常用SQL技巧 301

18.5.1正则表达式的使用 301

18.5.2巧用RANDQ提取随机行 304

18.5.3利用GROUP BY的WITH ROLLUP子句 305

18.5.4用BIT GROUP FUNCT IONS做统计 306

18.5.5数据库名、表名大小写问题 308

18.5.6使用外键需要注意的问题 309

18.6小结 310

19第19章 优化数据库对象 311

19.1优化表的数据类型 311

19.2通过拆分提高表的访问效率 313

19.3逆规范化 314

19.4使用中间表提高统计查询速度 315

19.5小结 316

20第20章 锁问题 317

20.1 MySQL锁概述 317

20.2 MyISAM表锁 318

20.2.1查询表级锁争用情况 318

20.2.2 MySQL表级锁的锁模式 318

20.2.3如何加表锁 319

20.2.4并发插入(Concurrent Inserts) 322

20.2.5 MyISAM的锁调度 323

20.3 InnoDB锁问题 324

20.3.1背景知识 324

20.3.2获取InnoDB行锁争用情况 326

20.3.3 InnoDB的行锁模式及加锁方法 328

20.3.4 InnoDB行锁实现方式 331

20.3.5 Next-Key锁 335

20.3.6恢复和复制的需要,对InnoDB锁机制的影响 337

20.3.7 InnoDB在不同隔离级别下的一致性读及锁的差异 341

20.3.8什么时候使用表锁 343

20.3.9关于死锁 343

20.4小结 349

21第21章 优化MySQL Server 351

21.1 MySQL体系结构概览 351

21.2 MySQL内存管理及优化 352

21.2.1内存优化原则 353

21.2.2 MyISAM内存优化 353

21.2.3 InnoDB内存优化 356

21.2.4调整用户服务线程排序缓存区 359

21.2 InnoDB log机制及优化 360

21.3.1 InnoDB重做日志 360

21.3.2 innodb_flush_log_at_trx_commit的设置 361

21.3.3设置log le size,控制检查点 362

21.3.4调整innodb_log_buffer_size 363

21.2调整MySQL并发相关的参数 364

21.4.1调整max_connections,提高并发连接 364

21.4.2调整back_log 364

21.4.3调整table_open_cache 364

21.4.4调整thread_cache_size 365

21.4.5 innodb lock wait timeout的设置 365

21.5小结 365

22第22章 磁盘I/O问题 366

22.1使用磁盘阵列 366

22.1.1常见RAID级别及其特性 366

22.1.2如何选择RAID级别 367

22.2虚拟文件卷或软RAID 367

22.3使用Symbolic Links分布I/O 368

22.4禁止操作系统更新文件的atime属性 369

22.5用裸设备(Raw Device)存放InnoDB的共享表空间 369

22.6调整I/O调度算法 370

22.7 RAID卡电池充放电问题 372

22.7.1什么是RAID卡电池充放电 372

22.7.2 RAID卡缓存策略 373

22.7.3如何应对RAID卡电池充放电带来的I/O性能波动 375

22.8 NUMA架构优化 376

22.9小结 380

23第23章 应用优化 381

23.1使用连接池 381

23.2减少对MySQL的访问 381

23.2.1避免对同一数据做重复检索 381

23.2.2使用查询缓存 382

23.2.3增加CACHE层 383

23.3负载均衡 383

23.3.1利用MySQL复制分流查询操作 383

23.3.2采用分布式数据库架构 384

23.4其他优化措施 384

23.5小结 384

第四部分 管理维护篇 386

24第24章 MySQL高级安装和升级 386

24.1 Linux/UNIX平台下的安装 386

24.1.1安装包比较 386

24.1.2安装RPM包 387

24.1.3安装二进制包 387

24.1.4安装源码包 388

24.1.5参数设置方法 389

24.2源码包安装的性能考虑 390

24.2.1去掉不需要的模块 390

24.2.2只选择要使用的字符集 391

24.2.3使用静态编译以提高性能 391

24.3升级MySQL 391

24.4 MySQL降级 393

24.5小结 393

25第25章 MySQL中的常用工具 394

25.1 mysql(客户端连接工具) 394

25.1.1连接选项 395

25.1.2客户端字符集选项 397

25.1.3执行选项 398

25.1.4格式化选项 399

25.1.5错误处理选项 399

25.2 myisampack(MyISAM表压缩工具) 402

25.3 mysqladmin(MySQL管理工具) 404

25.4 mysqlbinlog(日志管理工具) 405

25.5 mysqlcheck(MyISAM表维护工具) 410

25.6 mysqldump(数据导出工具) 411

25.6.1连接选项 411

25.6.2输出内容选项 411

25.6.3输出格式选项 412

25.6.4字符集选项 414

25.6.5其他常用选项 415

25.7 mysqlhotcopy(MyISAM表热备份工具) 415

25.8 mysqlimport(数据导入工具) 417

25.9 mysqlshow(数据库对象查看工具) 417

25.10 perror(错误代码查看工具) 420

25.11 replace(文本替换工具) 420

25.12小结 421

26第26章 MySQL日志 422

26.1错误日志 422

26.2二进制日志 423

26.2.1日志的位置和格式 423

26.2.2日志的读取 424

26.2.3日志的删除 425

26.2.4其他选项 428

26.3查询日志 428

26.3.1日志的位置和格式 428

26.3.2日志的读取 429

26.4慢查询日志 430

26.4.1文件位置和格式 430

26.4.2日志的读取 430

26.5 mysqlsla简介 433

26.6小结 435

27第27章 备份与恢复 436

27.1备份/恢复策略 436

27.2逻辑备份和恢复 437

27.2.1备份 437

27.2.2完全恢复 438

27.2.3基于时间点恢复 439

27.2.4基于位置恢复 440

27.3物理备份和恢复 440

27.3.1冷备份 440

27.3.2热备份 441

27.4表的导入导出 452

27.4.1导出 452

27.4.2导入 456

27.5小结 460

28第28章 MySQL权限与安全 461

28.1 MySQL权限管理 461

28.1.1权限系统的工作原理 461

28.1.2权限表的存取 462

28.1.3账号管理 464

28.2 MySQL安全问题 476

28.2.1操作系统相关的安全问题 476

28.2.2数据库相关的安全问题 479

28.3其他安全设置选项 495

28.3.1 old-passwords 495

28.3.2 safe-user-create 496

28.3.3 secure-auth 497

28.3.4 skip-grant-tables 498

28.3.5 skip-network 498

28.3.6 skip-show-database 499

28.4小结 499

29第29章 MySQL监控 500

29.1如何选择一个监控方案 500

29.1.1选择何种监控方式 500

29.1.2如何选择适合自己的监控工具 501

29.2常用网络监控工具 501

29.2.1 Cacti简介 501

29.2.2 Nagios简介 503

29.2.3 Zabbix简介 504

29.2.4 几种常见开源软件比较 506

29.3 Zabbit部署 506

29.3.1 Zabbix Server软件安装 506

29.3.2 Zabbix Server配置与启动 507

29.3.3 配置Zabbix Web服务端 509

29.3.4 ZabbixAgent安装和配置 512

29.3.5 MPM插件介绍和部署 513

29.3.6 Zabbix Web端操作 518

29.4小结 521

30第30章 MySQL常见问题和应用技巧 522

30.1忘记MySQL的root密码 522

30.2如何处理MyISAM存储引擎的表损坏 523

30.2.1方法一:使用myisamchk工具 523

30.2.2方法二:使用SQL命令 524

30.3 MyISAM表超过4GB无法访问的问题 524

30.4数据目录磁盘空间不足的问题 525

30.4.1对于MyISAM存储引擎的表 525

30.4.2对于InnoDB存储引擎的表 526

30.5 DNS反向解析的问题 526

30.6 mysql.sock丢失后如何连接数据库 527

30.7同一台服务器运行多个MySQL数据库 527

30.8客户端怎么访问内网数据库 528

30.8.1方法一:使用SecureCRT客户端工具 528

30.8.2方法二:使用MySQL Proxy工具 531

30.9小结 534

第五部分 架构篇 536

31第31章 MySQL复制 536

31.1复制概述 536

31.1.1复制中的各类文件 538

31.1.2三种复制方式 540

31.1.3复制的3种常见架构 544

31.2复制搭建过程 547

31.2.1异步复制 547

31.2.2半同步复制(Semi-synchronous Replication) 552

31.3主要复制启动选项 560

31.3.1 log-slave-updates 560

31.3.2 master-connect-retry 560

31.3.3 read-only 561

31.3.4指定复制的数据库或者表 562

31.3.5 slave-skip-errors 563

31.4日常管理维护 564

31.4.1查看从库状态 564

31.4.2主从库同步维护 565

31.4.3从库复制出错的处理 566

31.4.4 log event entry exceeded max_allowed_packet的处理 567

31.4.5多主复制时的自增长变量冲突问题 568

31.4.6查看从库的复制进度 570

31.4.7如何提高复制的性能 571

31.5切换主从库 576

31.6小结 577

32第32章 MySQL Cluster 578

32.1 MySQL Cluster架构 578

32.2 MySQL Cluster的配置 579

32.2.1 MySQL Cluster的版本支持 580

32.2.2管理节点配置步骤 581

32.2.3 SQL节点和数据节点的配置 582

32.3开始使用Cluster 582

32.3.1 Cluster的启动 582

32.3.2 Cluster的测试 584

32.3.3 Cluster的关闭 588

32.4维护Cluster 589

32.4.1数据备份 589

32.4.2数据恢复 590

32.4.3日志管理 592

32.5小结 594

33第33章 高可用架构 595

33.1 MMM架构 595

33.2 MHA架构 605

33.3安装部署MHA 607

33.3.1安装MHA node(在所有的MySQL服务器上安装) 607

33.3.2安装MHA Manager 608

33.3.3配置SSH登录无密码验证 609

33.3.4搭建主从复制环境 610

33.3.5配置MHA 611

33.3.6检查SSH的配置 613

33.3.7检查整个复制环境状况 614

33.3.8检查MHA Manager的状态 615

33.3.9开启MHA Manager监控 615

33.3.10查看启动日志 615

33.3.11关闭MHA Manager监控 616

33.3.12 VIP配置 616

33.3.13自动Failover 624

33.3.14网络问题触发的Failover操作 631

33.3.15手动Failover 633

33.3.16在线进行切换 634

33.3.17修复宕机的Master 635

33.4小结 635