• 大智小技V:数据库生产实战漫笔
21年品牌 40万+商家 超1.5亿件商品

大智小技V:数据库生产实战漫笔

正版全新

70.54 7.1折 99 全新

库存13件

上海浦东
认证卖家担保交易快速发货售后保障

作者爱可生开源社区

出版社中国市场出版社

ISBN9787509225165

出版时间2022-12

装帧其他

开本16开

纸张胶版纸

定价99元

货号3648075

上书时间2024-01-22

闲暇一卷书的书店

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

   商品详情   

品相描述:全新
商品描述
【书    名】 大智小技V:数据库生产实战漫笔
【书    号】 9787509225165
【出 版 社】 中国市场出版社
【作    者】 爱可生开源社区
【出版日期】 2024-01-01
【开    本】 16开
【定    价】 99.00元

【编辑推荐】 
★ MySQL 8.0新特性/故障分析/技术分享;

★ OceanBase的应用和开发实践案例;

★ 以系统化的架构向MySQL用户布道细小处的技巧。

【内容简介】 
“大智小技”系列图书由爱可生开源社区发起,将每年在社区发布的优质技术内容进行筛选分类整理编辑而成。
  《大智小技V:数据库生产实战漫笔》为系列图书的第五期,精选近一年来社区发布的技术内容。与前几本相比,本书除继续收录MySQL新特性、故障案例等经典内容之外,还新增了OceanBase章节,该章节旨在对OceanBase官方学习资料进行实战场景补充。

【目录】 
01 MySQL篇——8.0新特性

1 MySQL 8.0窗口函数框架用法

2 MySQL 8.0四个窗口函数的用法

3 MySQL 8.0通用表达式 WITH 的深入用法

4 MySQL 8.0多因素身份认证

5 MySQL 8.0对GTID的限制解除

6 MySQL 8.0的交集和差集介绍

7 MySQL 8.0对LIMIT的优化

8 MySQL 8.0新密码策略(一)

9 MySQL 8.0新密码策略(二)

10 MySQL 8.0新密码策略(三)

11 MySQL 8.0新密码策略(四)

12 MySQL 8.0在线调整REDO

13 MySQL 8.0REDO归档目录权限问题

14 MySQL 8.0.31导入直方图存量数据

15 针对用户定制不同格式执行计划

16 可能是目前*全的MySQL 8.0新特性解读

 

02 MySQL篇——技术分享

1 基于MySQL多通道主主复制的机房容灾方案

2 MySQL Shell运行SQL的两种内置方法概述

3 SQL优化:ICP的缺陷

4 MySQL级联复制下进行大表的字段扩容

5 一招解决MySQL中DDL被阻塞的问题

6 ibdata1文件“减肥”记/ 117

7 如何校验MySQL及Oracle时间字段合规性

8 mysqldump搭建复制报错,竟然是因为这个!

9 MySQL 5.7与MariaDB10.1审计插件兼容性验证

10 MySQL大表添加唯一索引的总结

11 MySQL覆盖索引优化案例一则

 

03 MySQL篇——故障分析

1 DROP大表造成数据库假死

2 MySQL主从延时值反复跳动

3 库表名大小写不规范,运维“两行泪”

4 MySQL convert函数导致的字符集报错处理

5 我都只读了,你还能写入?

6 MySQL升级到 8.0 版本变慢问题分析

7 MySQL管理端口登录异常排查及正确使用技巧

8 MySQL:我的从库竟是我自己

9 当USAGE碰到GRANT OPTION

10 从Insert并发死锁分析Insert加锁源码逻辑

11 数据库服务器内存不足一例分析

12 MySQL备份文件静默损坏一例分析

13 一条本该记录到慢日志的SQL是如何被漏掉的

14 innodb_thread_concurrency导致数据库异常的问题分析

 

04 OceanBase篇

1 OceanBase数据处理之控制文件

2 OceanBase资源及租户管理

3 OceanBase租户延迟删除

4 LSM-Tree和OceanBase分层转储

5 OceanBase里的BUFFER表

6 tenant删除租户的流程设计

7 OceanBase使用全局索引的必要性

8 OceanBase手滑误删了数据文件怎么办

9 OceanBase慢查询排查思路

10 从MySQL到OBOracle:如何处理自增列

11 OceanBase安全审计之身份鉴别

12 OceanBase安全审计之用户管理与访问控制

13 OceanBase特殊的INT与时间类型隐式转换问题

14 OceanBase一则函数报错问题分享

15 5270报错引发的几个思考

16 OceanBase频繁更新数据后读性能下降的排查

 

05 开源数据库及工具篇

1 Redis集群架构解析

2 Redis之分布式锁

3 Redis AOF重写源码分析

4 Redis主从复制风暴

5 Redis Cluster从库无法自动恢复同步案例一则

6 MongoDB索引操作导致服务崩溃

7 PBM备份恢复

8 DBA抓包神器tshark测评

【文摘】 
get_product_contenthtml

                body{font-size:1.28em}
                img {max-width:100%;}

            01 MySQL 篇——8.0 新特性
完稿前,MySQL刚刚发布了8.0.34版本。MySQL 8.0是一个非常活跃的版本,至今已经持续发布七年。每个版本都会推出一些新功能并对之前的版本问题进行修复。但这一切即将结束,MySQL 8.0.34仅为错误修复版本,MySQL团队公布了*新的版本策略。未来将会有创新版(Innovation)和长期支持版(LTS,Long-Term Support)两个版本同时存在。

近几年,社区一直保持对MySQL 8.0的关注,产出了很多新特性解读文章,包括窗口函数、新密码策略、直方图、SQL语法优化等,并且对目前为止MySQL 8.0的主要特性进行了阶段性总结,让我们再来回顾一下吧。

1 MySQL 8.0 窗口函数框架用法

作者:杨涛涛

窗口函数其实就是一个分组窗口内部处理每条记录的函数,这个窗口也就是之前聚合操作的窗口。不同的是,聚合函数是把窗口关闭,给一个汇总的结果;而窗口函数是把窗口打开,给分组内每行记录求取对应的聚合函数值或者其他表达式的结果。

本文重点看窗口函数内的 frame 子句:frame 子句用来把窗口内的记录按照指定的条件打印出来,跟在 PARTITION 和 ORDER BY 子句后面。frame 子句的语法如下:

frame_clause:

frame_units frame_extent

frame_units:

{ROWS | RANGE}

frame_extent:

{frame_start | frame_between}

frame_between:

BETWEEN frame_start AND frame_end

frame_start, frame_end: {

CURRENT ROW

| UNBOUNDED PRECEDING

| UNBOUNDED FOLLOWING

| expr PRECEDING

| expr FOLLOWING

}

这里分为两块:frame_units(框架单元)和 frame_extent(框架内容)。

frame_units(框架单元)有两个,一个是ROWS,一个是RANGE。
ROWS后面跟的内容为指定的行号,而RANGE不同,RANGE指的是行内容。

框架内容看起来有挺多分类,其实用一句话来表达就是:为了定义分组内对应行记录的边界值来求取对应的计算结果。

基于表 t1 举例说明如下:

mysql: ytt_80 > desc t1;

------- ------ ------ ----- --------- -------

| Field | Type | Null | Key | Default | Extra |

------- ------ ------ ----- --------- -------

| id | int | YES | | NULL | |

| r1 | int | YES | | NULL | |

| r2 | int | YES | | NULL | |

------- ------ ------ ----- --------- -------

3 rows in set (0.00 sec)

mysql: ytt_80 > select * from t1;

------ ------ ------

| id | r1 | r2 |

------ ------ ------

| 2 | 1 | 1 |

| 2 | 2 | 20 |

| 2 | 3 | 30 |

| 2 | 4 | 40 |

| 3 | 3 | 3 |

| 3 | 2 | 2 |

| 3 | 10 | 20 |

| 3 | 30 | 20 |

| 1 | 1 | 1 |

| 1 | 2 | 3 |

| 1 | 3 | 4 |

| 1 | 10 | 10 |

| 1 | 15 | 20 |

| 2 | 15 | 2 |

| 3 | 15 | 5 |

| 1 | 9 | 100 |

------ ------ ------

16 rows in set (0.00 sec)

1.1 CURRENT ROW

CURRENT ROW表示获取当前行记录,也就是边界是当前行,等值关系。

mysql: ytt_80 > select id,r1,sum(r1) over(partition by id order by r1 asc

range current row ) as wf_result from t1 where id = 1;

------ ------ -----------

| id | r1 | wf_result |

------ ------ -----------

| 1 | 1 | 1 |

| 1 | 2 | 2 |

| 1 | 3 | 3 |

| 1 | 9 | 9 |

| 1 | 10 | 10 |

| 1 | 15 | 15 |

------ ------ -----------

6 rows in set (0.00 sec)

这里我们求ID为1的分组记录,基于聚合函数SUM来对分组内的行记录按照一定的条件求和。其中OVER子句用来定义分区以及相关条件,这里表示只获取分组内排序字段的当前行记录,也就是字段r1对应的记录。这是*简单的场景。

1.2 UNBOUNDED PRECEDING

UNBOUNDED PRECEDING表示边界永远为第*行。

mysql: ytt_80 > select id,r1,sum(r1) over(partition by id order by r1 asc rows

unbounded preceding ) as wf_result from t1 where id = 1;

------ ------ -----------

| id | r1 | wf_result |

------ ------ -----------

| 1 | 1 | 1 |

| 1 | 2 | 3 |

| 1 | 3 | 6 |

| 1 | 9 | 15 |

| 1 | 10 | 25 |

| 1 | 15 | 40 |

------ ------ -----------

6 rows in set (0.00 sec)

以上UNBOUNDED PRECEDING用来获取表t1,按照字段ID来分组,并且对字段r1求和。由于都是以第*行,也就是r1=1为基础求和,即求取上一行和当前行相加的结果,基于第*行记录。这个例子中r1字段的第*行记录为1,后面的所有求和都是基于第*行进行累加的结果。

1.3 UNBOUNDED FOLLOWING

UNBOUNDED FOLLOWING 表示边界永远为*后一行。

mysql: ytt_80 > select id,r1,sum(r1) over(partition by id order by r1 asc rows

between unbounded preceding and unbounded following ) as wf_result from t1 where

id = 1;

------ ------ -----------

| id | r1 | wf_result |

------ ------ -----------

| 1 | 1 | 40 |

| 1 | 2 | 40 |

| 1 | 3 | 40 |

| 1 | 9 | 40 |

| 1 | 10 | 40 |

| 1 | 15 | 40 |

------ ------ -----------

6 rows in set (0.00 sec)

以上用了ROWS BETWEEN把边界局限在第*行和*后一行,这样每行的求和结果和不带边界一样,也就是下面的查询:

mysql: ytt_80 > select id,r1,sum(r1) over() as wf_result from t1 where id = 1;

------ ------ -----------

| id | r1 | wf_result |

------ ------ -----------

| 1 | 1 | 40 |

| 1 | 2 | 40 |

| 1 | 3 | 40 |

| 1 | 10 | 40 |

| 1 | 15 | 40 |

| 1 | 9 | 40 |

------ ------ -----------

6 rows in set (0.00 sec)

1.4 EXPR PRECEDING / FOLLOWING

EXPR PRECEDING / FOLLOWING 表示带表达式的边界。

mysql: ytt_80 > select id,r1,sum(r1) over(partition by id order by r1 asc rows

1 preceding) as wf_result from t1 where id = 1;

------ ------ -----------

| id | r1 | wf_result |

------ ------ -----------

| 1 | 1 | 1 |

| 1 | 2 | 3 |

| 1 | 3 | 5 |

| 1 | 9 | 12 |

| 1 | 10 | 19 |

| 1 | 15 | 25 |

------ ------ -----------

6 rows in set (0.00 sec)

带表达式的边界只是把无边界换成具体的行号。上面的查询表达的意思是基于分组内每行记录和它上一条记录求和,不累加。可以看到wf_result的具体值,25对应的是10和15求和,19对应的是9和10求和。

以此类推,求每行和它上面两行的和:

mysql: ytt_80 > select id,r1,sum(r1) over(partition by id order by r1 asc rows

2 preceding) as wf_result from t1 where id = 1;

------ ------ -----------

| id | r1 | wf_result |

------ ------ -----------

| 1 | 1 | 1 |

| 1 | 2 | 3 |

| 1 | 3 | 6 |

| 1 | 9 | 14 |

| 1 | 10 | 22 |

| 1 | 15 | 34 |

------ ------ -----------

6 rows in set (0.00 sec)

【前言】 
2023年10月24日是爱可生开源社区成立六周年的日子。六年来,社区先后开源了多款数据运维工具,如SQLE、DBLE、DTLE等,为数据库从业者提供了企业级的开源解决方案,并受到社区用户的广泛好评。

在周年纪念日当天,SQL质量审核平台SQLE发布了3.0版本。SQLE全面改进,包括SQL审核功能的优化、SQL采集来源的扩展以及系统功能的优化等,大大提升了用户体验。在社区接到大量的用户诉求后,于2023年底,向社区用户开放SQLE企业体验版,为用户提供更多有价值的功能和服务。其他开源项目(DBLE、DTLE)在今年也发布了版本更新,始终为用户提供稳定可靠的技术支持。

众所周知,爱可生开源社区是一个数据库通用技术和实战经验分享平台。社区共累计发布数据库技术内容1000多篇,技术专栏5个,组织参与线上线下活动近百场,先后与30多家社区、媒体、出版社、开源基金会等组织成为合作伙伴,为数据库开源贡献自己的一份力量!

在此,爱可生开源社区衷心感谢过去六年来关注社区的广大用户,向社区投稿的作者们、在各类活动中一起合作的伙伴们,以及让本书顺利发行的中国市场出版社。

未来,社区将继续为大家提供高质量的技术内容、企业级数据库工具及服务、丰富的社区活动,也期待越来越多的技术爱好者加入我们这个有“深度”的数据库开源社区,与社区共同见证数据库开源生态的蓬勃发展。

爱可生开源社区

笔者一直是爱可生社区的忠实读者,实际工作中遇到的一些问题均能在社区文章中找到共鸣,深受启发。

通读了此书,书中内容结构清晰地分成了三大类(MySQL方向、OceanBase方向、开源数据库及工具篇)。除了讲解MySQL的8.0新特性、通用问题技术分享、常见故障排查分析,还为OceanBase独立成章,重点描述了OceanBase相关的理论知识点和常见问题,如资源机租户管理、分层转储、误删除处理、安全审计、性能下降的排查思路等。此外,本书还重点讲解了一直很火、关注度很高的开源库Redis和MongoDB,以及对应的两个常用备份恢复工具和抓包分析神器tshark。本书从上述三个方面一一铺展开来,所选文章来源于实际案例和一线人员的切身实战和思考,形式丰富多样,可谓“有图有真相”。

本书适合数据库从业者和技术爱好者持有,推荐大家拿到此书后,研读书中案例,既要深入进去也要跳脱出来理解,由点入线再入面,学习其思路、锤炼“吾”思维。此次推荐此书,愿拿到此书的各位读者找到共鸣。

——杨磊 中信建投证券数据架构师

“大智小技”系列图书的内容源于开源社区,当初可能是一段问答、一个案例,经过各位技术大咖的精炼,又如涓涓细流汇聚成册,名为“小技”,实为“大智”。

本书结合实际案例讲解技术原理,深入浅出,生动形象,日常放在身边随手翻阅,每每都能有新的收获,是一本值得推荐的实用型的数据库技术图书。

——上海证券 曹斌

时光流转,《大智小技V:数据库生产实战漫笔》即将问世,作为“大智小技”系列的读者,我深感荣幸。爱可生社区不断与时俱进、深耕技术,每一篇文章都凝聚了数据库从业者的实践总结和真知灼见。感谢你们的辛苦付出和无私分享。祝愿爱可生蒸蒸日上,“大智小技”系列不断延续下去。期待更多的精彩。

我强烈推荐您阅读这书,相信它一定会为您带来很多启示和帮助。

——邹启键 中电通商数字DBA专家

“大智小技”已陪伴四年,内容也逐渐从基础知识科普转向实战经验的分享,本人工作中时常翻阅该系列图书,找到知识点从而解决问题,有“豁然开朗”之感。

希望爱可生继续在开源社区中深耕,丰富“大智小技”内容,带来更多的惊喜。

——魏子昂 兴业数金数据库管理平台负责人

MySQL是目前非常流行的关系型数据库之一,本人从事MySQLDBA这么多年,书架上从早期的“书荒”到现在的“琳琅满目”,爱可生“大智小技”系列,始终是我非常喜欢的。

收到每一期“大智小技”的时候都爱不释手,每一期都收录了社区很多高价值的内容,让我受益匪浅,也让我感受到了爱可生作为一家以MySQL技术立足的科技公司所展现出的可贵的坚持与执着。

时光荏苒,“大智小技”系列已经到了第五期,希望更多的小伙伴能读到此书,能从中受益,也希望爱可生越来越好、国内的MySQL生态越来越好。

——王佳琦 紫金保险DBA专家

《大智小技V:数据库生产实战漫笔》是一本非常优秀的数据库图书,言简意赅、善于抓住重点内容

   相关推荐   

—  没有更多了  —

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

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