• MYSQL是怎样运行的 从根儿上理解MYSQL
21年品牌 40万+商家 超1.5亿件商品

MYSQL是怎样运行的 从根儿上理解MYSQL

全新正版 极速发货

39.64 3.6折 109 全新

库存31件

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

作者小孩子4919

出版社人民邮电出版社

ISBN9787115547057

出版时间2023-10

装帧平装

开本16开

定价109元

货号1203114772

上书时间2024-07-16

徐小智的书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
毕业于西安建筑科技大学,曾在“跟谁学”做后端工程师。由于感到市场上的许多技术书籍晦涩难懂,决定离职研究如何把复杂问题讲清楚的学问。目前运营自媒体号【我们都是小青蛙】,输出大量原创技术文章。花费一年多的时间研究MySQL,梳理总结出《MySQL是怎样运行的:从根儿上理解MySQL》的图书,当前销量为8400多册。

目录
第0章  楔子——阅读前推荐阅读1
第 1章  装作自己是个小白——初识MySQL  3
1.1  MySQL的客户端/服务器架构  3
1.2  MySQL的安装  3
1.3  启动MySQL服务器程序  5
1.3.1  在类UNIX系统中启动服务器程序  5
1.3.2  在Windows系统中启动服务器程序  6
1.4  启动MySQL客户端程序  7
1.5  客户端与服务器连接的过程  10
1.5.1  TCP/IP  10
1.5.2  命名管道和共享内存  10
1.5.3  UNIX域套接字  11
1.6  服务器处理客户端请求  11
1.6.1  连接管理  12
1.6.2  解析与优化  12
1.6.3  存储引擎  14
1.7  常用存储引擎  14
1.8  关于存储引擎的一些操作  16
1.8.1  查看当前服务器程序支持的存储引擎  16
1.8.2  设置表的存储引擎  16
1.9  总结  17
第 2章  MySQL的调控按钮——启动选项和系统变量  19
2.1  启动选项和配置文件  19
2.1.1  在命令行上使用选项  19
2.1.2  配置文件中使用选项  21
2.1.3  在命令行和配置文件中启动选项的区别  26
2.2  系统变量  27
2.2.1  系统变量简介  27
2.2.2  查看系统变量  27
2.2.3  设置系统变量  28
2.3  状态变量  32
2.4  总结  32
第3章  字符集和比较规则  34
3.1  字符集和比较规则简介  34
3.1.1  字符集简介  34
3.1.2  比较规则简介  34
3.1.3  一些重要的字符集  35
3.2  MySQL中支持的字符集和比较规则  36
3.2.1  MySQL中的utf8和utf8mb4  36
3.2.2  字符集的查看  36
3.2.3  比较规则的查看  38
3.3  字符集和比较规则的应用  39
3.3.1  各级别的字符集和比较规则  39
3.3.2  客户端和服务器通信过程中使用的字符集  44
3.3.3  比较规则的应用  52
3.4  总结  53
第4章  从一条记录说起——InnoDB记录存储结构  55
4.1  准备工作  55
4.2  InnoDB页简介  55
4.3  InnoDB行格式  56
4.3.1  指定行格式的语法  56
4.3.2  COMPACT行格式  56
4.3.3  REDUNDANT行格式  64
4.3.4  溢出列  68
4.3.5  DYNAMIC行格式和COMPRESSED行格式  70
4.4  总结  71
第5章  盛放记录的大盒子——InnoDB数据页结构  72
5.1  不同类型的页简介  72
5.2  数据页结构快览  72
5.3  记录在页中的存储  73
5.4  Page Directory(页目录)  80
5.5  Page Header(页面头部)  85
5.6  File Header(文件头部)  86
5.7  File Trailer(文件尾部)  88
5.8  总结  88
第6章  快速查询的秘籍——B+树索引  90
6.1  没有索引时进行查找  90
6.1.1  在一个页中查找  90
6.1.2  在很多页中查找  91
6.2  索引  91
6.2.1  一个简单的索引方案  92
6.2.2  InnoDB中的索引方案  94
6.2.3  InnoDB中B+树索引的注意事项  102
6.2.4  MyISAM中的索引方案简介  104
6.2.5  MySQL中创建和删除索引的语句  105
6.3  总结  106
第7章  B+树索引的使用  107
7.1  B+树索引示意图的简化  107
7.2  索引的代价  109
7.3  应用B+树索引  110
7.3.1  扫描区间和边界条件  110
7.3.2  索引用于排序  122
7.3.3  索引用于分组  125
7.4  回表的代价  126
7.5  更好地创建和使用索引  127
7.5.1  只为用于搜索、排序或分组的列创建索引  127
7.5.2  考虑索引列中不重复值的个数  127
7.5.3  索引列的类型尽量小  127
7.5.4  为列前缀建立索引  128
7.5.5  覆盖索引  129
7.5.6  让索引列以列名的形式在搜索条件中单独出现  129
7.5.7  新插入记录时主键大小对效率的影响  129
7.5.8  冗余和重复索引  130
7.6  总结  131
第8章  数据的家——MySQL的数据目录  132
8.1  数据库和文件系统的关系  132
8.2  MySQL数据目录  132
8.2.1  数据目录和安装目录的区别  132
8.2.2  如何确定MySQL中的数据目录  132
8.3  数据目录的结构  133
8.3.1  数据库在文件系统中的表示  133
8.3.2  表在文件系统中的表示  134
8.3.3  其他的文件  137
8.4  文件系统对数据库的影响  137
8.5  MySQL系统数据库简介  138
8.6  总结  138
第9章  存放页面的大池子——InnoDB的表空间  140
9.1  回忆一些旧知识  140
9.1.1  页面类型  140
9.1.2  页面通用部分  141
9.2  独立表空间结构  142
9.2.1  区的概念  142
9.2.2  段的概念  144
9.2.3  区的分类  145
9.2.4  段的结构  149
9.2.5  各类型页面详细情况  150
9.2.6  Segment Header结构的运用  156
9.2.7  真实表空间对应的文件大小  157
9.3  系统表空间  158
9.4  总结  164
第 10章  条条大路通罗马——单表访问方法  166
10.1  访问方法的概念  167
10.2  const  167
10.3  ref  168
10.4  ref_or_null  170
10.5  range  171
10.6  index  171
10.7  all  172
10.8  注意事项  172
10.8.1  重温二级索引+回表  172
10.8.2  索引合并  173
10.9  总结  177
第 11章  两个表的亲密接触——连接的原理  178
11.1  连接简介  178
11.1.1  连接的本质  178
11.1.2  连接过程简介  180
11.1.3  内连接和外连接  181
11.2  连接的原理  185
11.2.1  嵌套循环连接  186
11.2.2  使用索引加快连接速度  187
11.2.3  基于块的嵌套循环连接  188
11.3  总结  189
第 12章  谁大力度优惠就选谁——基于成本的优化  190
12.1  什么是成本  190
12.2  单表查询的成本  190
12.2.1  准备工作  190
12.2.2  基于成本的优化步骤  191
12.2.3  基于索引统计数据的成本计算  198
12.3  连接查询的成本  201
12.3.1  准备工作  201
12.3.2  条件过滤(Condition Filtering)  201
12.3.3  两表连接的成本分析  203
12.3.4  多表连接的成本分析  205
12.4  调节成本常数  206
12.4.1  mysql.server_cost表  206
12.4.2  mysql.engine_cost表  208
12.5  总结  209
第 13章  兵马未动,粮草先行——InnoDB统计数据是如何收集的  210
13.1  统计数据的存储方式  210
13.2  基于磁盘的较为性统计数据  211
13.2.1  innodb_table_stats  211
13.2.2  innodb_index_stats  214
13.2.3  定期更新统计数据  215
13.2.4  手动更新innodb_table_stats和innodb_index_stats表  216
13.3  基于内存的非较为性统计数据  217
13.4  innodb_stats_method的使用  217
13.5  总结  219
第 14章  基于规则的优化(内含子查询优化二三事)  220
14.1  条件化简  220
14.1.1  移除不必要的括号  220
14.1.2  常量传递  220
14.1.3  移除没用的条件  221
14.1.4  表达式计算  221
14.1.5  HAVING子句和WHERE子句的合并  221
14.1.6  常量表检测  221
14.2  外连接消除  222
14.3  子查询优化  224
14.3.1  子查询语法  225
14.3.2  子查询在MySQL中是怎么执行的  230
14.4  总结  244
第 15章  查询优化的百科全书——EXPLAIN详解  245
15.1  执行计划输出中各列详解  246
15.1.1  table  246
15.1.2  id  247
15.1.3  select_type  249
15.1.4  partitions  252
15.1.5  type  252
15.1.6  possible_keys和key  255
15.1.7  key_len  256
15.1.8  ref  258
15.1.9  rows  258
15.1.10  filtered  259
15.1.11  Extra  260
15.2  JSON格式的执行计划  266
15.3  Extented EXPLAIN  268
15.4  总结  269
第 16章  神兵利器——optimizer trace的神奇功效  270
16.1  optimizer trace简介  270
16.2  通过optimizer trace分析查询优化器的具体工作过程  271
第 17章  调节磁盘和CPU的矛盾——InnoDB的Buffer Pool  278
17.1  缓存的重要性  278
17.2  InnoDB的Buffer Pool  278
17.2.1  啥是Buffer Pool  278
17.2.2  Buffer Pool内部组成  278
17.2.3  free链表的管理  279
17.2.4  缓冲页的哈希处理  280
17.2.5  flush链表的管理  281
17.2.6  LRU链表的管理  282
17.2.7  其他的一些链表  286
17.2.8  刷新脏页到磁盘  287
17.2.9  多个Buffer Pool实例  287
17.2.10  innodb_buffer_pool_chunk_size  288
17.2.11  配置Buffer Pool时的注意事项  289
17.2.12  查看Buffer Pool的状态信息  291
17.3  总结  293
第 18章  从猫爷借钱说起——事务简介  294
18.1  事务的起源  294
18.1.1  原子性(Atomicity)  295
18.1.2  隔离性(Isolation)  295
18.1.3  一致性(Consistency)  296
18.1.4  持久性(Durability)  298
18.2  事务的概念  298
18.3  MySQL中事务的语法  300
18.3.1  开启事务  300
18.3.2  提交事务  301
18.3.3  手动中止事务  302
18.3.4  支持事务的存储引擎  302
18.3.5  自动提交  303
18.3.6  隐式提交  304
18.3.7  保存点  305
18.4  总结  307
第 19章  说过的话就一定要做到——redo日志  308
19.1  事先说明  30

—  没有更多了  —

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

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