Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

PostgreSQL修炼之道:从小工到专家(第2版) PDF 下载


分享到:
时间:2023-06-06 08:39来源:http://www.java1234.com 作者:转载  侵权举报
本书分为四大部分,分别为准备篇、基础篇、提高篇和配套开源软件及架构篇。准备篇为没有数据库基础的读者准备的,如果读者已经具备了一定的数据库基础,可以跳过其中的一些内
失效链接处理
PostgreSQL修炼之道:从小工到专家(第2版) PDF 下载


下载地址:
版权归出版社和原作者所有,链接已删除,请购买正版

用户下载说明:

电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/1739820752.html
 

相关截图:



资料简介:
本书分为四大部分,分别为准备篇、基础篇、提高篇和配套开源软件及架构篇。准备篇为没有数据库基础的读者准备的,如果读者已经具备了一定的数据库基础,可以跳过其中的一些内容。基础篇介绍了PostgreSQL数据库中的一些基础内容,读者学习完此篇可以完成基本的PostgreSQL数据库的日常操作工作。提高篇讲解了一些更深的内容,如PostgreSQL的一些技术内幕、特色功能、优化等方面的内容,读者仔细阅读此篇以便早日成为PostgreSQL数据库高手。第三方开源软件及架构篇讲解了与PostgreSQL数据库配套使用的一些常用的开源软件及架构设计方面的内容,通过阅读此篇,可以提高读者的眼界和数据库架构设计能力。

资料目录:
前言
第一篇准备篇
第1章PostgreSQL简介2
1.1什么是PostgreSQL2
1.1.1PostgreSQL的发展历史2
1.1.2PostgreSQL数据库的优势4
1.1.3PostgreSQL应用现状和发展趋势5
1.2PostgreSQL数据库与其他数据库的对比6
1.2.1PostgreSQL与MySQL数据库的对比6
1.2.2PostgreSQL与Oracle数据库的对比8
1.3小结8
第2章PostgreSQL的安装与配置9
2.1从发行版本安装9
2.1.1RedHat/CentOS下的安装方法10
2.1.2Windows下的安装方法12
2.1.3从发行版本安装总结18
2.2从源码安装18
2.2.1编译安装过程简介18
2.2.2下载源代码18
2.2.3编译及安装20
2.2.4PostgreSQL的配置22
2.2.5创建数据库实例23
2.2.6安装contrib目录下的工具23
2.2.7启动和停止数据库23
2.2.8编译安装过程中的常见问题及解决方法24
2.3PostgreSQL的简单配置25
2.3.1pg_hba.conf的配置26
2.3.2修改监听的IP和端口26
2.3.3数据库日志相关参数26
2.3.4内存参数的设置27
2.4PostgreSQL的安装技巧27
2.4.1不想把数据库实例创建到“/var/lib/pgsql”目录下27
2.4.2如何使用较大的数据块提高I/O性能29
2.4.3打开数据块的checksum功能29
2.5小结30
第3章SQL入门31
3.1SQL语句语法简介31
3.1.1语句的分类31
3.1.2词法结构31
3.2DDL语句32
3.2.1建表语句32
3.2.2删除表语句34
3.3DML语句34
3.3.1插入语句34
3.3.2更新语句35
3.3.3删除语句35
3.4查询语句36
3.4.1单表查询语句36
3.4.2过滤条件的查询36
3.4.3排序37
3.4.4分组查询38
3.4.5多表关联查询38
3.4.6子查询40
3.5其他SQL语句42
3.5.1INSERT...SELECT语句42
3.5.2UNION语句42
3.5.3TRUNCATETABLE语句43
3.6小结43
第二篇基础篇
第4章psql工具46
4.1psql介绍46
4.2psql的简单使用46
4.3psql的常用命令48
4.3.1“\h”命令49
4.3.2“\d”命令49
4.3.3指定客户端字符集的命令52
4.3.4格式化输出的\pset命令52
4.3.5“\x”命令55
4.3.6执行存储在外部文件中的SQL命令56
4.3.7编辑命令56
4.3.8输出信息的“\echo”命令57
4.3.9其他命令58
4.4psql的使用技巧59
4.4.1历史命令与补全功能59
4.4.2自动提交技巧59
4.4.3如何得到psql中快捷命令执行的实际SQL60
4.5小结62
第5章数据类型63
5.1数据类型介绍63
5.1.1数据类型的分类63
5.1.2数据类型的输入与转换65
5.2布尔类型65
5.2.1布尔类型介绍65
5.2.2布尔类型的操作符67
5.3数值类型68
5.3.1数值类型介绍68
5.3.2整数类型68
5.3.3准确的小数类型69
5.3.4浮点数类型70
5.3.5序列类型70
5.3.6货币类型70
5.3.7数学函数和操作符71
5.4字符串类型73
5.4.1字符串类型介绍73
5.4.2字符串函数和操作符73
5.5二进制数据类型76
5.5.1二进制数据类型介绍76
5.5.2二进制数据类型转义表示76
5.5.3二进制数据类型的函数77
5.6位串类型78
5.6.1位串类型介绍78
5.6.2位串类型的使用方法78
5.6.3位串的操作符及函数79
5.7日期/时间类型80
5.7.1日期/时间类型介绍80
5.7.2日期输入81
5.7.3时间输入82
5.7.4特殊值84
5.7.5函数和操作符列表84
5.7.6时间函数85
5.7.7extract和date_part函数89
5.8枚举类型90
5.8.1枚举类型的使用90
5.8.2枚举类型说明91
5.8.3枚举类型的函数92
5.9几何类型92
5.9.1几何类型概况93
5.9.2几何类型的输入93
5.9.3几何类型的操作符98
5.9.4几何类型的函数106
5.10网络地址类型107
5.10.1网络地址类型概况107
5.10.2inet与cidr类型107
5.10.3macaddr类型110
5.10.4网络地址类型的操作符110
5.10.5网络地址类型的函数111
5.11复合类型112
5.11.1复合类型的定义112
5.11.2复合类型的输入113
5.11.3访问复合类型114
5.11.4修改复合类型114
5.11.5复合类型的输入输出115
5.12xml类型116
5.12.1xml类型的输入116
5.12.2字符集的问题117
5.12.3xml类型函数118
5.13JSON类型124
5.13.1JSON类型简介124
5.13.2JSON类型的输入与输出125
5.13.3JSON类型的操作符126
5.13.4JSON类型的函数127
5.13.5JSON类型的索引132
5.14Range类型136
5.14.1Range类型简介136
5.14.2创建Range类型138
5.14.3Range类型的输入与输出138
5.14.4Range类型的操作符141
5.14.5Range类型的函数142
5.14.6Range类型的索引和约束142
5.15数组类型143
5.15.1数组类型的声明143
5.15.2如何输入数组值144
5.15.3访问数组146
5.15.4修改数组148
5.15.5数组的操作符149
5.15.6数组的函数151
5.16伪类型153
5.17其他类型154
5.17.1UUID类型154
5.17.2pg_lsn类型154
5.18小结155
第6章逻辑结构管理156
6.1数据库逻辑结构介绍156
6.2数据库基本操作156
6.2.1创建数据库156
6.2.2修改数据库157
6.2.3删除数据库158
6.2.4常见问题及解答158
6.3模式159
6.3.1什么是模式159
6.3.2模式的使用159
6.3.3公共模式161
6.3.4模式的搜索路径161
6.3.5模式的权限162
6.3.6模式的可移植性162
6.4表163
6.4.1创建表163
6.4.2表的存储属性165
6.4.3临时表167
6.4.4UNLOGGED表170
6.4.5默认值170
6.4.6约束171
6.4.7修改表175
6.4.8表继承179
6.4.9通过表继承实现分区表181
6.4.10声明式分区186
6.5触发器188
6.5.1创建触发器189
6.5.2语句级触发器与行级触发器190
6.5.3BEFORE触发器与AFTER触发器193
6.5.4删除触发器194
6.5.5触发器的行为194
6.5.6触发器函数中的特殊变量195
6.6事件触发器196
6.6.1创建事件触发器198
6.6.2修改事件触发器201
6.7表空间201
6.7.1什么是表空间201
6.7.2表空间的使用方法201
6.8视图202
6.8.1什么是视图202
6.8.2创建视图203
6.8.3可更新视图204
6.9索引207
6.9.1索引简介207
6.9.2索引的分类207
6.9.3创建索引208
6.9.4并发创建索引209
6.9.5修改索引211
6.9.6删除索引212
6.10用户及权限管理213
6.10.1用户和角色213
6.10.2创建用户和角色213
6.10.3权限的管理214
6.10.4函数和触发器的权限219
6.10.5权限的总结220
6.10.6权限的示例220
6.11事务、并发和锁220
6.11.1什么是ACID221
6.11.2DDL事务221
6.11.3事务的使用方法221
6.11.4SAVEPOINT222
6.11.5事务隔离级别224
6.11.6两阶段提交225
6.11.7锁机制226
6.11.8死锁及防范230
6.11.9表级锁命令LOCKTABLE230
6.11.10行级锁命令231
6.11.11锁的查看231
6.12小结238
第7章PostgreSQL的核心架构239
7.1进程及内存结构239
7.1.1进程和内存架构图239
7.1.2主进程Postmaster介绍240
7.1.3Logger系统日志进程介绍241
7.1.4BgWriter后台写进程介绍241
7.1.5WalWriter预写式日志写进程介绍241
7.1.6PgArch归档进程242
7.1.7AutoVacuum自动清理进程242
7.1.8PgStat统计数据收集进程242
7.1.9共享内存242
7.1.10本地内存243
7.2存储结构243
7.2.1逻辑存储结构243
7.2.2软件目录结构244
7.2.3物理存储结构244
7.2.4表空间的目录246
7.3应用程序访问接口247
7.3.1访问接口总体图247
7.3.2不同编程语言的PostgreSQL驱动介绍248
7.4小结249
第8章服务管理250
8.1服务的启停及原理250
8.1.1服务的启停方法250
8.1.2pg_ctl工具251
8.1.3信号255
8.1.4postgres及单用户模式255
8.2服务配置介绍256
8.2.1配置参数256
8.2.2连接配置项259
8.2.3内存配置项261
8.2.4预写式日志的配置项262
8.2.5错误报告和日志项264
8.3访问控制配置文件268
8.3.1pg_hba.conf文件268
8.3.2认证方法介绍269
8.3.3认证方法实战270
8.4备份和还原271
8.4.1逻辑备份271
8.4.2pg_dump命令272
8.4.3pg_restore命令275
8.4.4pg_dump和pg_restore应用示例278
8.4.5物理备份279
8.4.6使用LVM快照进行热备份279
8.5常用的管理命令282
8.5.1查看系统信息的常用命令282
8.5.2系统维护常用命令288
8.6小结289
第三篇提高篇
第9章PostgreSQL执行计划292
9.1执行计划的解释292
9.1.1EXPLAIN命令292
9.1.2EXPLAIN输出结果解释293
9.1.3EXPLAIN使用示例294
9.1.4全表扫描297
9.1.5索引扫描297
9.1.6位图扫描297
9.1.7条件过滤298
9.1.8嵌套循环连接299
9.1.9散列连接299
9.1.10合并连接300
9.2与执行计划相关的配置项301
9.2.1ENABLE_*参数301
9.2.2COST基准值参数301
9.2.3基因查询优化的参数302
9.2.4其他执行计划配置项303
9.3统计信息的收集304
9.3.1统计信息收集器的配置项304
9.3.2SQL执行的统计信息输出304
9.3.3手动收集统计信息305
9.4小结306
第10章PostgreSQL中的技术内幕307
10.1表中的系统字段307
10.1.1oid308
10.1.2ctid310
10.1.3xmin、xmax、cmin、cmax311
10.2多版本并发控制312
10.2.1多版本并发控制的原理312
10.2.2PostgreSQL中的多版本并发控制313
10.2.3PostgreSQL多版本的优劣分析315
10.3物理存储结构315
10.3.1PostgreSQL中的术语315
10.3.2数据块结构316
10.3.3Tuple结构316
10.3.4数据块空闲空间管理317
10.3.5可见性映射表文件320
10.4控制文件解密320
10.4.1控制文件介绍320
10.4.2数据库的专享标识串解密321
10.4.3Checkpoint信息解密322
10.4.4与Standby相关的信息323
10.5WAL文件解密324
10.5.1WAL文件介绍324
10.5.2WAL文件名的秘密324
10.5.3WAL文件循环复用原理325
10.6CommitLog文件与事务ID技术解密327
10.6.1CommitLog文件介绍327
10.6.2事务ID技术328
10.7实例恢复与热备份原理解密328
10.7.1实例恢复的原理328
10.7.2热备份的原理329
10.8一些技术解密332
10.8.1Index-OnlyScans332
10.8.2Heap-OnlyTuples334
10.9小结335
第11章PostgreSQL的特色功能336
11.1规则系统336
11.1.1SELECT规则336
11.1.2更新规则337
11.1.3规则和权限340
11.1.4规则和命令状态341
11.1.5规则与触发器的比较342
11.2模式匹配和正则表达式342
11.2.1PostgreSQL中的模式匹配和正则表达式343
11.2.2传统SQL的LIKE操作符343
11.2.3SIMILARTO正则表达式345
11.2.4POSIX正则表达式346
11.2.5模式匹配函数substring347
11.3LISTEN与NOTIFY命令349
11.3.1LISTEN与NOTIFY的简单示例349
11.3.2LISTEN与NOTIFY的相关命令350
11.3.3LISTEN与NOTIFY的使用详解351
11.4索引的特色354
11.4.1表达式上的索引354
11.4.2部分索引355
11.4.3GiST索引357
11.4.4SP-GiST索引359
11.4.5GIN索引360
11.4.6BRIN索引362
11.5序列的使用365
11.5.1序列的创建365
11.5.2序列的使用及相关函数366
11.5.3常见问题及解答368
11.6咨询锁的使用370
11.6.1什么是咨询锁370
11.6.2咨询锁的函数及使用370
11.6.3常见问题及解答374
11.7SQL/MED374
11.7.1SQL/MED的介绍375
11.7.2外部数据包装器对象376
11.7.3外部服务器对象377
11.7.4用户映射对象378
11.7.5外部表对象378
11.7.6file_fdw使用实例379
11.7.7postgres_fdw使用实例382
11.7.8oracle_fdw使用实例383
11.7.9odbc_fdw使用实例385
11.8全文检索385
11.8.1全文检索介绍386
11.8.2全文检索入门386
11.8.3使用zhparser做中文全文检索388
11.9数组的特色功能391
11.9.1数组的应用场景介绍391
11.9.2数组的使用技巧393
11.10并行查询功能394
11.10.1并行查询相关的配置参数395
11.10.2支持的并行操作介绍395
11.11小结396
第12章数据库优化397
12.1数据库优化准则和方法397
12.1.1数据库优化准则397
12.1.2优化方法398
12.2硬件知识398
12.2.1CPU及服务器体系结构399
12.2.2内存400
12.2.3硬盘400
12.3文件系统及I/O调优402
12.3.1文件系统的崩溃恢复403
12.3.2Ext2文件系统403
12.3.3Ext3文件系统403
12.3.4Ext4文件系统404
12.3.5XFS文件系统406
12.3.6BarriersI/O406
12.3.7I/O调优的方法407
12.3.8SSD的Trim优化410
12.4性能监控410
12.4.1数据库性能视图411
12.4.2Linux监控工具414
12.5数据库配置优化415
12.5.1内存配置优化415
12.5.2大页内存的配置418
12.5.3VACUUM中的优化419
12.5.4预写式日志写优化422
12.5.5配置的很好实践424
12.6数据库的逻辑结构优化430
12.6.1表的优化430
12.6.2索引的优化432
12.7SQL的优化436
12.7.1找出慢的SQL436
12.7.2SQL语句的优化技巧439
12.8小结441
第13章Standby数据库的搭建442
13.1Standby数据库原理442
13.1.1PITR原理442
13.1.2WAL日志归档443
13.1.3流复制444
13.1.4Standby数据库的运行原理444
13.1.5建Standby数据库的步骤445
13.2pg_basebackup命令行工具447
13.2.1pg_basebackup介绍447
13.2.2pg_basebackup的命令行参数447
13.2.3pg_basebackup使用示例449
13.3异步流复制HotStandby的示例450
13.3.1配置环境450
13.3.2主数据库的配置450
13.3.3在Standby上生成基础备份451
13.3.4启动Standby数据库452
13.3.5交换主备库的角色454
13.3.6故障切换455
13.4同步流复制的Standby数据库458
13.4.1同步流复制的架构458
13.4.2同步复制的配置458
13.4.3配置实例459
13.5检查备库及流复制情况465
13.5.1检查异步流复制的情况465
13.5.2检查同步流复制的情况466
13.5.3pg_stat_replication视图详解467
13.5.4查看备库的状态468
13.6HotStandby的470
13.6.1HotStandby的查询470
13.6.2HotStandby的查询冲突处理473
13.7恢复配置详解474
13.7.1归档恢复配置项474
13.7.2RecoveryTarget配置475
13.7.3StandbyServer配置476
13.8流复制的注意事项476
13.8.1min_wal_size参数的配置476
13.8.2vacuum_defer_cleanup_age参数的配置477
13.9逻辑复制477
13.9.1逻辑复制的介绍477
13.9.2逻辑复制的发布478
13.9.3逻辑复制的订阅479
13.9.4逻辑复制的冲突处理481
13.9.5逻辑复制的481
13.9.6逻辑复制的监控与安全482
13.9.7逻辑复制的相关配置参数483
13.9.8逻辑复制的搭建实践483
13.10小结488
第四篇架构篇
第14章PgBouncer490
14.1PgBouncer介绍490
14.2PgBouncer的相关概念491
14.3PgBouncer的安装方法491
14.4PgBouncer的简单使用491
14.4.1简单配置方法492
14.4.2启动PgBouncer492
14.4.3停止PgBouncer493
14.4.4查看连接池信息493
14.5PgBouncer的配置文件详解495
14.5.1“[databases]”配置495
14.5.2“[pgbouncer]”配置496
14.5.3用户密码文件499
14.6小结500
第15章Slony-I的使用501
15.1Slony-I中的主要概念501
15.1.1集群502
15.1.2节点502
15.1.3复制集合502
15.1.4数据原始生产者、数据提供者和数据订阅者502
15.1.5Slon守护程序502
15.1.6Slonik配置程序503
15.2Slony-I复制的一些503
15.3在Linux下安装和配置Slony-I503
15.3.1二进制方式安装Slony-I503
15.3.2源码编译安装Slony-I504
15.3.3配置Slony-I的基本复制506
15.3.4添加和移除表的复制512
15.3.5主备切换513
15.4小结514
第16章Bucardo的使用515
16.1Bucardo的相关概念515
16.1.1Bucardo介绍515
16.1.2BucardoFAQ515
16.1.3Bucardo同步中定义的概念516
16.2Bucardo的安装方法516
16.2.1Bucardo的安装步骤516
16.2.2安装Test-Simple、ExtUtils-MakeMaker、version517
16.2.3安装DBI及DBD::Pg518
16.2.4安装DBIx-Safe518
16.2.5安装Bucardo源码包518
16.2.6使用yum安装Bucardo519
16.3Bucardo同步配置520
16.3.1示例环境520
16.3.2Bucardo的工作原理520
16.3.3bucardoinstall521
16.3.4配置同步523
16.3.5Bucardo常用命令525
16.4Bucardo的日常维护526
16.4.1Bucardo的触发器日志清理526
16.4.2临时停止和启动同步的方法526
16.4.3新增表到同步的方法527
16.4.4移除某个表或序列的方法527
16.5小结527
第17章PL/Proxy的使用528
17.1PL/Proxy的相关概念528
17.1.1什么是PL/Proxy528
17.1.2PL/Proxy的特性说明530
17.2PL/Proxy的安装及配置530
17.2.1编译安装530
17.2.2安装规划531
17.2.3配置过程531
17.3PL/Proxy的集群配置详解535
17.3.1ClusterconfigurationAPI方式536
17.3.2SQL/MED方式配置集群538
17.4PL/Proxy语言详解539
17.4.1CONNECT539
17.4.2CLUSTER539
17.4.3RUNON539
17.4.4SPLIT540
17.4.5TARGET540
17.5PL/Proxy的高可用方案540
17.5.1方案介绍540
17.5.2方案架构541
17.5.3具体实施步骤542
17.6小结550
第18章pgpool-II的使用551
18.1pgpool-II的相关概念551
18.1.1什么是pgpool-II551
18.1.2pgpool-II的发展简介552
18.1.3pgpool-II的架构552
18.1.4pgpool-II的工作模式554
18.1.5pgpool-II的程序模块556
18.2pgpool-II的安装方法556
18.2.1安装软件556
18.2.2安装pgpool_regclass557
18.2.3建立insert_lock表557
18.2.4安装pgpool_recovery558
18.3pgpool-II配置快速入门558
18.3.1pgpool-II的配置过程558
18.3.2内置复制模式的示例561
18.3.3流复制的主备模式示例564
18.3.4show命令566
18.4pgpool-II高可用配置方法568
18.4.1pgpool-II高可用切换及恢复的原理568
18.4.2pgpool-II的在线恢复568
18.4.3流复制模式中的故障切换570
18.4.4pgpool-II的健康检查571
18.4.5流复制的主备模式的高可用示例571
18.4.6watchdog的配置576
18.5小结582
第19章Postgres-XC的使用583
19.1Postgres-XC的相关概念583
19.1.1什么是Postgres-XC583
19.1.2Postgres-XC的特点584
19.1.3Postgres-XC的性能584
19.1.4Postgres-XC的组件585
19.2Postgres-XC的安装585
19.2.1源码安装方法585
19.2.2Postgres-XC目录及程序说明586
19.3配置Postgres-XC集群588
19.3.1集群规划588
19.3.2初始化GTM588
19.3.3初始化GTM备库589
19.3.4初始化GTMProxy589
19.3.5初始化Coordinators、数据节点590
19.3.6启动集群591
19.3.7停止集群592
19.3.8配置集群节点信息592
19.4Postgres-XC的使用594
19.4.1建表详解594
19.4.2使用600
19.4.3重新分布数据601
19.4.4增加Coordinator节点的方法602
19.4.5移除Coordinator节点的方法603
19.4.6增加Datanode节点的方法604
19.4.7移除Datanode节点的方法605
19.5小结605
第20章高可用性方案设计606
20.1高可用架构基础606
20.1.1各种高可用架构介绍606
20.1.2服务的可靠性设计607
20.1.3数据可靠性设计607
20.2基于共享存储的高可用方案608
20.2.1SAN存储方案608
20.2.2DRBD方案609
20.3WAL日志同步或流复制同步方案609
20.3.1持续复制归档的Standby方法609
20.3.2异步流复制方案610
20.3.3同步流复制方案610
20.4基于触发器的同步方案610
20.4.1基于触发器的同步方案特点610
20.4.2基于此方案的同步软件介绍610
20.5基于中间件的高可用方案611
20.5.1基于中间件的高可用方案的特点611
20.5.2基本中间件的开源软件介绍612
20.6小结613
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐