• MySQL 8查询性能优化
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

MySQL 8查询性能优化

78 4.9折 158 全新

仅1件

广东广州
认证卖家担保交易快速发货售后保障

作者[澳]杰斯帕·威斯堡·克罗(Jesper Wisborg Krogh) 著;史跃东 杨欣 殷海英 译

出版社清华大学出版社

出版时间2021-08

版次1

装帧其他

货号58607105

上书时间2024-12-19

牧野书屋

六年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
图书标准信息
  • 作者 [澳]杰斯帕·威斯堡·克罗(Jesper Wisborg Krogh) 著;史跃东 杨欣 殷海英 译
  • 出版社 清华大学出版社
  • 出版时间 2021-08
  • 版次 1
  • ISBN 9787302583912
  • 定价 158.00元
  • 装帧 其他
  • 开本 16开
  • 纸张 胶版纸
  • 页数 1160页
  • 字数 999千字
【内容简介】
主要内容 ● 监控性能,找出效果不佳的查询 ● 选取要优化的查询,**限度地提高收益 ● 使用EXPLAIN ANALYZE和Visual Explain等工具来分析查询 ● 借助多种策略改进慢查询 ● 正确使用索引和直方图,创建快速的执行计划 ● 了解并分析锁,从而解决争用问题,提升系统吞吐量
【作者简介】
自2006年以来,Jesper Wisborg Krogh先后以SQL开发人员和数据库管理员的身份参与到MySQL数据库工作中,并且作为MySQL技术支持团队的一员,工作了8年之久。他曾在MySQL Connect和Oracle OpenWorld上多次发表演讲。除了出版相关书籍外,他也会定期撰写一些以MySQL为主题的博客文章,并为Oracle知识库撰写了约800份文档。此外,Jesper Wisborg Krogh也为MySQL中的sys库,以及MySQL 5.6等相关的OCP认证考试做出了许多贡献。

在2006年转向MySQL及软件开发之前,Jesper Wisborg Krogh获得计算化学的博士学位。他现在居住在澳大利亚的悉尼,平时喜欢在户外散步、旅行以及阅读等。其研究领域涉及MySQL集群、MySQL Enterprise Backup(MEB)、性能优化,以及performance库和sys库等。
【目录】
第Ⅰ部分  入门

第1章  MySQL性能优化   2

1.1  通盘考虑   2

1.2  监控   3

1.3  查询的生命周期   4

1.4  本章小结   5

第2章  查询优化方法论   6

2.1  综述   6

2.2  核实问题   7

2.3  确定原因   8

2.4  确定解决方案   8

2.5  实施解决方案   8

2.6  主动工作   10

2.7  本章小结   11

第3章  使用Sysbench进行基准测试   12

3.1  实践   12

3.2  标准TPC基准测试   14

3.3  通用的基准测试工具   14

3.4  安装Sysbench   15

3.5  执行基准测试   20

3.6  创建自定义基准测试   25

3.6.1  自定义脚本概述   25

3.6.2  定义选项   27

3.6.3  run命令   27

3.6.4  prepare命令   29

3.6.5  cleanup命令   31

3.6.6  注册命令   31

3.7  本章小结   32

第4章  测试数据   34

4.1  下载示例数据库   34

4.2  world数据库   35

4.2.1  方案   35

4.2.2  安装   36

4.3  world_x数据库   36

4.3.1  方案   36

4.3.2  安装   36

4.4  sakila数据库   37

4.4.1  方案   37

4.4.2  安装   40

4.5  employees数据库   41

4.5.1  方案   41

4.5.2  安装   43

4.6  其他数据库   44

4.7  本章小结   44

第Ⅱ部分  信息来源

第5章  performance库   46

5.1  术语   46

5.2  线程   47

5.3  instrument   50

5.4  消费者   51

5.5  事件   53

5.5.1  事件类型   53

5.5.2  事件范围   53

5.5.3  事件嵌套   54

5.5.4  事件属性   55

5.6  Actor与对象   56

5.7  摘要   56

5.8  表类型   57

5.9  动态配置   58 

5.10  本章小结   59

第6章  sys库   61

6.1  sys库配置   62

6.2  格式化函数   64

6.3  视图   65

6.4  辅助函数与过程   66

6.5  本章小结   67

第7章  information库   68

7.1  何为information库   68

7.2  权限   69

7.3  视图   69

7.3.1  系统信息   69

7.3.2  方案信息   70

7.3.3  性能信息   74

7.3.4  权限信息   77

7.4  索引统计数据缓存   78

7.5  本章小结   79

第8章  SHOW语句   80

8.1  与information库的关系   81

8.2  与performance库的关系   82

8.3  引擎状态   83

8.4  复制与二进制日志   84

8.4.1  列出二进制日志   84

8.4.2  查看日志事件   84

8.4.3  显示连接的副本   87

8.5  其他语句   88

8.6  本章小结   90

第9章  慢查询日志   92

9.1  配置   93

9.2  日志事件   95

9.3  汇总   96

9.4  本章小结   98

第Ⅲ部分  工    具

第10章  MySQL Enterprise Monitor   100

10.1  概述   100

10.2  安装   102

10.2.1  下载   102

10.2.2  安装   104

10.3  启动和停止Service Manager   109

10.3.1  在Microsoft Windows中启动和停止Service Manager   109

10.3.2  在Linux中启动和停止Service Manager   110

10.4  添加MySQL实例   111

10.5  图形管理界面   113

10.5.1  通用导航   113

10.5.2  建议器   114

10.5.3  时序图   116

10.5.4  查询分析器   117

10.6  本章小结   118

第11章  MySQL Workbench   119

11.1  安装   120

11.1.1  Microsoft Windows   120

11.1.2  Enterprise Linux 7   124

11.1.3  Debian和Ubuntu   127

11.2  创建连接   129

11.3  使用MySQL Workbench   130

11.3.1  概要   130

11.3.2  配置   131

11.3.3  安全设置   133

11.3.4  重新格式化查询   133

11.4  EER图   134

11.5  本章小结   135

第12章  MySQL shell   136

12.1  概要   136

12.1.1  安装MySQL shell   137

12.1.2  调用MySQL shell   137

12.1.3  创建连接   137

12.1.4  语言模式   139

12.1.5  内建帮助   140

12.1.6  内建全局对象   141

12.2  提示符   141

12.2.1  内置提示符   141

12.2.2  自定义提示符   143

12.2.3  Powerline和Awesome字体   145

12.3  使用外部模块   146

12.4  报表基础架构   148

12.4.1  报表信息和帮助   148

12.4.2  执行报表   149

12.4.3  添加自己的报表   151

12.5  插件   155

12.6  本章小结   161

第Ⅳ部分  方案考量与查询优化器

第13章  数据类型   164

13.1  为何是数据类型   164

13.1.1  数据验证   165

13.1.2  文档   166

13.1.3  优化存储   166

13.1.4  性能   167

13.1.5  正确排序   167

13.2  MySQL的数据类型   167

13.2.1  数值类型   168

13.2.2  日期和时间类型   169

13.2.3  字符串与二进制类型   169

13.2.4  JSON数据类型   171

13.2.5  空间数据类型   172

13.2.6  混合数据类型   173

13.3  性能   174

13.4  应该选择何种数据类型   174

13.5  本章小结   176

第14章  索引   177

14.1  什么是索引   177

14.2  索引的概念   178

14.2.1  键与索引   178

14.2.2  索引   178

14.2.3  主键   179

14.2.4  二级索引   180

14.2.5  簇聚索引   180

14.2.6  覆盖索引   180

14.3  索引的限制   181

14.4  SQL语法   181

14.4.1  创建带有索引的表   182

14.4.2  添加索引   182

14.4.3  移除索引   183

14.5  索引的缺点是什么?   184

14.5.1  存储   184

14.5.2  更新索引   185

14.5.3  优化器   185

14.6  索引类型   186

14.6.1  B-tree索引   186

14.6.2  全文索引   188

14.6.3  空间索引   189

14.6.4  多值索引   190

14.6.5  哈希索引   193

14.7  索引的特性   195

14.7.1  函数索引   196

14.7.2  前缀索引   196

14.7.3  不可见索引   197

14.7.4  降序索引   198

14.7.5  分区与索引   198

14.7.6  自生成索引   200

14.8  InnoDB与索引   200

14.8.1  簇聚索引   201

14.8.2  二级索引   201

14.8.3  建议   201

14.8.4  用例   201

14.9  索引策略   202

14.9.1  何时添加或者移除索引?   202

14.9.2  主键的选择   203

14.9.3  添加二级索引   203

14.9.4  多列索引   204

14.9.5  覆盖索引   205

14.10  本章小结   205

第15章  索引统计信息   206

15.1  何为索引统计信息?   206

15.2  InnoDB与索引统计信息   207

15.2.1  统计信息是如何被收集的?   207

15.2.2  页采样   208

15.2.3  事务隔离级别   209

15.2.4  配置统计信息类型   209

15.3  持久索引统计信息   209

15.3.1  配置   210

15.3.2  索引统计信息表   211

15.4  临时索引统计信息   214

15.5  监控   215

15.5.1  information库中的STATISTICS视图   215

15.5.2  SHOW INDEX 语句   217

15.5.3  information库中的INNODB_TABLESTATS视图   219

15.5.4  information库中的TABLES视图及SHOW TABLE STATUS语句   220

15.6  更新统计信息   223

15.6.1  自动更新   223

15.6.2  ANALYZE TABLE语句   224

15.6.3  mysqlcheck程序   225

15.7  本章小结   227

第16章  直方图   229

16.1  何为直方图?   229

16.2  何时应该添加直方图信息?   230

16.3  直方图内部信息   231

16.3.1  bucket   231

16.3.2  累积频率   232

16.3.3  直方图类型   234

16.4  直方图的添加与维护   236

16.4.1  直方图的创建与更新   236

16.4.2  采样   237

16.4.3  删除直方图   238

16.5  查看直方图数据   238

16.6  直方图报告示例   239

16.6.1  列出所有直方图   240

16.6.2  列出一个直方图的所有信息   240

16.6.3  列出一个单值直方图的桶信息   241

16.6.4  列出一个等高直方图的桶信息   243

16.7  查询示例   244

16.8  本章小结   247

第17章  查询优化器   248

17.1  转换   249

17.2  基于成本的优化   249

17.2.1  基础:单表SELECT操作   250

17.2.2  表联接顺序   251

17.2.3  默认过滤效果   251

17.2.4  查询成本   252

17.3  联接算法   254

17.3.1  嵌套循环   254

17.3.2  块嵌套循环   257

17.3.3  哈希联接   260

17.4  联接优化   263

17.4.1  索引合并   263

17.4.2  多范围读(MRR)   269

17.4.3  批量key访问(BKA)   270

17.4.4  其他优化   271

17.5  配置优化器   274

17.5.1  引擎成本   275

17.5.2  服务器成本   275

17.5.3  优化器开关   277

17.5.4  优化器提示   278

17.5.5  索引提示   281

17.5.6  配置选项   282

17.6  资源组   282

17.6.1  获取资源组相关信息   283

17.6.2  管理资源组   283

17.6.3  分配资源组   285

17.6.4  性能考量   286

17.7  本章小结   287

第18章  锁原理与监控   288

18.1  为何会需要锁?   288

18.2  锁访问级别   289

18.3  锁粒度   289

18.3.1  用户级别锁   289

18.3.2  刷新锁   291

18.3.3  元数据锁   292

18.3.4  显式表锁   295

18.3.5  隐式表锁   295

18.3.6  记录锁   297

18.3.7  gap锁、next-key锁以及预测锁   299

18.3.8  插入意向锁   300

18.3.9  自增锁   302

18.3.10  备份锁   302

18.3.11  日志锁   304

18.4  获取锁失败   304

18.4.1  元数据锁和备份锁等待超时   305

18.4.2  InnoDB锁等待超时   305

18.4.3  死锁   306

18.5  减少锁相关的问题   309

18.5.1  事务大小与期限   309

18.5.2  索引   309

18.5.3  记录访问顺序   310

18.5.4  事务隔离级别   310

18.5.5  抢占锁   312

18.6  监控锁   313

18.6.1  performance库   313

18.6.2  sys库   314

18.6.3  状态计数器与InnoDB指标   314

18.6.4  InnoDB锁监控与死锁日志   315

18.7  本章小结   318

第Ⅴ部分  查询分析

第19章  查找待优化的查询   320

19.1  performance库   321

19.1.1  语句事件表   321

19.1.2  prepared语句的汇总   325

19.1.3  表的I/O汇总   327

19.1.4  文件 I/O汇总信息   332

19.1.5  错误汇总表   334

19.2  sys库   335

19.2.1  语句视图   335

19.2.2  表I/O视图   337

19.2.3  文件I/O视图   338

19.2.4  语句性能分析器   340

19.3  MySQL Workbench   343

19.3.1  性能报告   344

19.3.2  客户端连接报告   346

19.4  MySQL Enterprise Monitor   346

19.4.1  查询分析器   346

19.4.2  时间序列图   349

19.4.3  即席查询报告   350

19.5  慢查询日志   352

19.6  本章小结   352

第20章  分析查询   354

20.1  EXPLAIN用法   355

20.1.1  显式查询的用法   355

20.1.2  EXPLAIN ANALYZE   355

20.1.3  连接的用法   356

20.2  EXPLAIN格式   357

20.2.1  传统格式   358

20.2.2  JSON格式   359

20.2.3  树状格式   362

20.2.4  Visual Explain   364

20.3  EXPLAIN输出   368

20.3.1  EXPLAIN字段   368

20.3.2  选择类型   371

20.3.3  访问类型   372

20.3.4  Extra信息   376

20.4  EXPLAIN示例   377

20.4.1  单表,全表扫描   378

20.4.2  单表,索引访问   379

20.4.3  两张表和覆盖索引   380

20.4.4  多列索引   381

20.4.5  两张表并带有子查询和排序   382

20.5  优化器跟踪   384

20.6  performance库事件分析   387

20.6.1  检查存储过程   387

20.6.2  分析阶段事件   391

20.6.3  使用sys.ps_trace_thread( )过程进行分析   393

20.6.4  使用ps_trace_statement_digest( )过程进行分析   396

20.7  本章小结   400

第21章  事务   401

21.1  事务的影响   401

21.1.1  锁   402

21.1.2  undo日志   402

21.2  INNODB_TRX   403

21.3  InnoDB监视器   406

21.4  INNODB_METRICS和sys.metrics   407

21.5  performance库事务   410

21.5.1  事务事件及其语句   410

21.5.2  事务汇总表   416

21.6  本章小结   417

第22章  诊断锁争用   418

22.1  刷新锁   419

22.1.1  症状   419

22.1.2  原因   419

22.1.3  构建   420

22.1.4  调研   420

22.1.5  解决方案   423

22.1.6  预防   423

22.2  元数据锁和方案锁   424

22.2.1  症状   424

22.2.2  原因   424

22.2.3  构建   424

22.2.4  调研   425

22.2.5  解决方案   431

22.2.6  预防   431

22.3  记录锁   432

22.3.1  症状   432

22.3.2  原因   434

22.3.3  构建   435

22.3.4  调研   435

22.3.5  解决方案   436

22.3.6  预防   437

22.4  死锁   437

22.4.1  症状   437

22.4.2  原因   438

22.4.3  构建   438

22.4.4  调研   439

22.4.5  解决方案   444

22.4.6  预防   444

22.5  本章小结   445

第Ⅵ部分  提升查询性能

第23章  配置   448

23.1  实践   448

23.2  InnoDB综述   451

23.3  InnoDB缓冲池   452

23.3.1  缓冲池大小   453

23.3.2  缓冲池实例   455

23.3.3  转储缓冲池   455

23.3.4  旧块子列表   455

23.3.5  刷新页   457

23.4  重做日志   458

23.4.1  日志缓冲区   459

23.4.2  日志文件   459

23.5  并行查询执行   461

23.6  查询缓冲区   462

23.7  内部临时表   463

23.8  本章小结   465

第24章  改变查询计划   466

24.1  测试数据   466

24.2  出现过多全表扫描的症状   467

24.3  错误查询   468

24.4  未使用索引   470

24.4.1  不在多列索引的靠左位置   471

24.4.2  数据类型不匹配   473

24.4.3  函数依赖   476

24.5  改善索引的使用情况   478

24.5.1  添加覆盖索引   479

24.5.2  错误索引   480

24.5.3  重写复杂索引条件   487

24.6  重写复杂查询   488

24.6.1  公共表表达式(CTE)   489

24.6.2  窗口函数   493

24.6.3  使用联接来重写子查询   494

24.6.4  将查询拆分为多个部分   495

24.7  队列系统:SKIP LOCKED   496

24.8  多个OR或者IN条件   498

24.9  本章小结   502

第25章  DDL与批量数据加载   504

25.1  方案更改   505

25.1.1  算法   505

25.1.2  其他考量   506

25.1.3  删除或者截断表   506

25.2  数据加载的一般性考量   507

25.3  以主键顺序插入   516

25.3.1  自增长主键   516

25.3.2  插入已有数据   517

25.3.3  UUID主键   518

25.4  InnoDB缓冲池与二级索引   519

25.5  配置   521

25.6  事务与加载方式   522

25.7  MySQL shell并行数据加载   522

25.8  本章小结   524

第26章  复制   526

26.1  复制概述   527

26.2  监控   528

26.2.1  连接表   529

26.2.2  applier表   531

26.2.3  日志状态   533

26.2.4  组复制表   534

26.3  连接   534

26.3.1  复制事件   534

26.3.2  网络   535

26.3.3  维护源信息   536

26.3.4  写入中继日志   536

26.4  applier线程   536

26.4.1  并行applier   537

26.4.2  主键   538

26.4.3  放宽数据安全   538

26.4.4  复制过滤器   539

26.5  将工作负载卸载到副本   540

26.5.1  读操作的横向扩展   540

26.5.2  任务分离   540

26.6  本章小结   541

第27章  缓存   542

27.1  缓存,无处不在   542

27.2  MySQL中的缓存   543

27.2.1  缓存表   543

27.2.2  直方图统计信息   545

27.3  Memcached   546

27.3.1  独立服务器模式下的Memcached   547

27.3.2  MySQL InnoDB Memcached插件   549

27.4  ProxySQL   552

27.5  缓存技巧   558

27.6  本章小结   559
点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP