testing-04

简单生活

  • 本文重点介绍了MySQL领域最新的书籍:《MySQL实战》,以及2020左右推出的书籍《MySQL是怎样运行的》。

    《MySQL实战》,作者陈臣

    上个月,MySQL领域又发布了一本新书:《MySQL实战》,作者是陈臣,来自Oracle的工程师,一直活跃在MySQL数据库领域。本文概要的介绍一下,这是一本怎样的书,以及合适哪些人阅读。

    《MySQL实战》这本书更加偏重实践、深入原理相结合的方式介绍MySQL,是非常适合希望能够系统的、更加深入的了解MySQL的开发者或DBA的,例如从事的工作与MySQL数据库密切相关,涉及到MySQL的管理、问题排查、调优选型等。如果做一般性的了解,则可以选择性的阅读其中的章节和内容。

    具体的,如果你从事的工作与需要进行复制配置与管理,那么则可以考虑深入阅读第二章”复制“;如果,你的工作中需要处理Binlog,例如需要进行增量数据解析与获取,则可以精读第三章”深入解析Binlog“。

    相比于官方手册,该书籍在实践方面是更接地气的,这一点上,这本书也是MySQL官方手册的很好补充。

    例如,如果想系统的了解MySQL的备份,本书在第五章系统的介绍各种MySQL的备份方法。涵盖了官方提供的mysqldump,也包括在社区使用非常广泛的mydumper和XtraBackup。如果只是阅读官方手册的话,你可能只会看到关于mysqldump的相关介绍,但在实际的生产使用中,尤其是海量数据备份时,XtraBackup和mydumper都被广泛使用。

    再比如,大表DDL一直是MySQL的一个”硬伤“,在系统运行较长时间后,都会遇到这个令人头疼的问题。本书的第七章就叫”DDL“,单独的介绍了这个online DDL的现状以及常用的解决方案。不仅包含了官方MySQL中的online DDL支持,也涵盖了在社区最为广泛使用的两个工具pt-osc和gh-ost。

    《MySQL是怎样运行的》

    另外,也补充介绍一下2020年的书《MySQL是怎样运行的》。这本书封面上写的作者名字是”小孩子4919“,可见作者更加有个性,这也体现在书籍中。书中,一般会用打比方的方式介绍或者引入数据库的一些概念,然后再较为深入的进行介绍。非常适合新手从零开始学习MySQL,了解他的基本概念,以及对应的原理。在覆盖面上,涵盖了诸如安装配置、字符集、InnoDB、查询优化基础、事务等相关内容,并且都尽可能从非常基础的开始讲起。

    例如,在介绍MySQL启动选项和系统变量的时候,作者使用了手机中的“设置”进行类比;再比如,很少有书籍会介绍“字符集和比较规则”,但这也是一个新手难以理解的地方,本书则使用了独立章节进行介绍,并从计算机底层的二进制存储开始引入结束,可以说是深入浅出。

    当然,作者也做了一些取舍,也就只能放弃非常深入全面的解析每个模块的细枝末节。总得来说,这本书作为打开MySQL大门的引导,是非常合适的。

    是《MySQL实战》,不是《MySQL实战45讲》

    另外,“MySQL实战”在领域还有一个非常有名系列是由丁奇和极客时间推出“MySQL实战45讲”。本书和该系列没有什么直接关系。

    最后

    最后,搜索引擎这么强大,为什么还要读书?相比互联网上零散的信息与知识,书籍则提供完整的、系统的介绍某个领域的知识。而,作为专业领域的从业者,通常都需要了解领域的方方面面,书籍或者手册则是非常好开始。

  • 重要更新

    最近两篇争锋相对的文章,又在数据库圈子里面引起了一阵涟漪:正方为:《分布式数据库是伪需求吗?》,反方为《2023年了,还有人在谈分布式数据库是不是伪需求》感兴趣的可以看看。正方观点看起来虽然有一些偏激,但是笔者还是支持正方的,也认为狭义的分布式数据库受众是非常有限的,并确实在受到硬件快速发展的挤压,例如,2009年淘宝业务使用的x86数据库服务器内存是16GB+HDD硬盘,而现在云数据库很容易买到500GB内存的实例(如阿里云RDS最大内存可达768G),比较极限的还可以买到4TB内存的实例(可以看看Amazon的”db.x2iedn.32xlarge”规格3)。另外,分布式数据库场景虽然有限,依旧有部分场景,最典型的就是写入密集型,并且是非常关键的一些场景,例如交易事务,需要使用分布式数据库。你站哪边?可以留下你的评论。

    华为云GaussDB荣获中国电子学会“科技进步一等奖”(参考),这代表该数据库一定程度获得了中国官方非常高的认可与评价。

    据悉,MySQL版本管理将会做出重大改变,原来模式下每3年左右发布一个大版本,例如5.1/5.5/5.6/5.7/8.0等,但是事实上,距离8.0在2018年4月GA到现在已经有5年没有大版本了,据悉,新的模式下,将会使用LTS版本和Innovation Release结合形式,LTS版本两年发布一次,并提供5年(Premier)+3年(Extended)支持的方式;Innovation Release则每个季度一个小版本持续迭代,会不断融入更多新功能与特性:参考1、参考25

    MariaDB再遇艰难时刻,现金可能会难以支撑长期运营:参考14。自去年12月,MariaDB以SPAC模式在美上市后,股价也一直走低。这次,MariaDB发出警告说,虽然已经裁员26人,但现金依旧可能不足以支撑公司,并在寻求新的一轮融资。只能说当初Monty自己构建的MySQL太强大了。

    云数据库技术社区的第一次沙龙将在周六下午于杭州海智中心举行,主题为MySQLx ClickHouse,很久没有线下聚会了,感兴趣的可以来现场交流:参考

    更新详情

    阿里云
    • RDS MySQL支持从本地SSD升级到ESSD:参考6
    • RDS MySQL集群版支持存储自动扩容:参考7
    • PolarDB普通集群上新增开启Serverless功能:参考8
    • DTS支持专属集群:参考9
    AWS
    • RDS的事件通知功能新增了实例Tag信息,帮助用户更好的处理实例事件1
    • DynamoDB支持最多可以同时并发恢复50个表2
    • AWS Backup现在支持在EC2上HANA的备份与恢复4
    腾讯云
    • RDS支持PostgreSQL 15
    火山引擎
    • RDS MySQL新增对Terraform的支持:参考11
    • 托管Redis支持多可用区同城容灾:参考10
    其他
    • 号称MongoDB平替的FerretDB发布 1.0:参考12
    • 开源向量数据库Qdrant获750万美元融资,这是在其去年获得220万美元融资之后的再次融资:参考13
    • MariaDB再遇艰难时刻,现金可能会难以支撑长期运营:参考14

    推荐阅读

    引用链接

    关于引用链接的说明:还是偶尔会收到一些认真的开发者来咨询,某某特性有没有更详细的说明链接,于是还是打算尽量给更新的出处。但因为微信公众号不支持任何外链,所以就通过引用链接的方式给出相关内容的引用。另外,有很多链接都非常长,既不美观也不便于复制,于是使用bitly的短链接服务,让操作更简单一些。但是,也注意到bitly服务在国内有时候并不稳定,请看客自己科学跳转。

  • 对ChatGPT/AIGC的零散思考

    ·

    疫情来到之初,因为对于病毒和传播了解较少,难以感受到疫情在过去的三年如此巨大的改变了大家的生活。而这次ChatGPT变革则是处在自己所在的互联网/基础科技领域,已经感受到了ChatGPT将较为深刻的改变很多内容。

    (more…)
  • 重要更新

    “云数据库技术”第一次线下meetup正式开启,计划于下周六(4月22日)下午在杭州举办,主题为“MySQL x ClickHouse”,邀请了国内云厂商和技术专家,与开发者共同讨论云数据库技术。欢迎现场参加,感谢朋友们的转发与扩散:参考

    注意到,原“阿里云数据库”公众号正式更名为“阿里云瑶池数据库”,“瑶池”应该会是后续阿里云数据库主推的品牌,该品牌可以理解和之前的ApsaraDB类似,是阿里云数据库的整体品牌。另外,上周,阿里云Lindorm通过SQL语句曲线支持AI绘图能力:参考。可以通过简单的SQL语句,加上描述性语言生成对应图片。

    Amazon RDS开始支持Graviton 3(第三代自研ARM芯片)的实例,规格代码为:db.m7g(通用) 和 db.r7g(内存优化型),AWS的Graviton实例(ARM)已经相对比较成熟,在性价比上相比x86架构有明显的优势,如果是降本增效的业务可以考虑使用,能够很轻松的获得30%的成本节约 2

    更新详情

    阿里云
    • RDS PostgreSQL Serverless正式商业化发布:参考
    • RDS MySQL/PostgreSQL部分实例(PL1/2/3类型)支持存储空间缩容:参考
    • RDS PostgreSQL 14/15新增自研插件rds_ccl,支持SQL限流:参考
    字节火山云
    • DTS支持了支持通过专线和 VPN 实现数据上云(邀测):参考
    AWS
    • RDS Custom for SQL Server支持多AZ:参考
    • Aurora支持PostgreSQL 15:参考。另外,AlloyDB、PolarDB当前支持的是均为14:参考。从产品发布节奏,可以看到,Amazon在云基础技术上是一直领先的。
    • RDS控制台新增了创建Elasticache实例功能:参考,详细使用:参考。该功能主要是考虑Elasticache(Redis)系统经常会和关系型数据库在一个环境中,从RDS控制台创建Elasticache,可以继承RDS的安全组、连接访问配置,简化了用户的部分配置操作。
    • RDS MySQL集群版支持15个只读节点: 参考;支持了从RDS MySQL单可用区版本、多可用区版本到RDS MySQL集群版的复制功能:参考。这些功能发布来看,当前Amazon的RDS的团队是在重要发展MySQL集群版。当大家都觉得AWS RDS应该没什么事情可以做的时候,他们还在不断的创新。至于,什么是集群版、单可用区版、多可用区版,可以参考如下文章:
    • RDS PostgreSQL新增提供本地NVMe SSD的实例,可以让需要使用本地存储的场景性能大大提升,包括需要使用临时表的复杂查询、复杂排序、聚合等,具备该能力的实例类型包括db.M5d和db.R5d,这里的规格代码“d”应该就表示使用了本地NVMe SSD的实例:参考
    • RDS开始支持Graviton 3(第三代ARM实例),规格代码:db.m7g 和 db.r7
    • RDS多可用区集群版至此以预留实例方式购买3
    GCP
    • BigQuery 变更数据捕获(CDC)公测上线:参考。相比之前提供的DML语句获取,CDC能够帮助开发者更好的获取变化数据。
    Azure
    • 托管PostgreSQL(FS)的只读副本功能正式GA:参考
    • 托管PostgreSQL(FS)新增指标Database-is-alive可以获得数据库是否正常运行1
    • 托管PostgreSQL(FS)支持新的突发型实例(B4ms, B8ms, B12ms, B16ms, B20ms)4

    参考阅读

    引用

    [1]  https://azure.microsoft.com/en-us/updates/public-preview-databaseisalive-metrics-for-monitoring-azure-postgres-flexible-server-database-availability/

    [2]  https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html#Concepts.DBInstanceClass.Support

    [3]  https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithReservedDBInstances.html#USER_WorkingWithReservedDBInstances.MultiAZDBClusters

    [4]  https://azure.microsoft.com/en-us/updates/generally-available-new-burstable-skus-for-azure-database-for-postgresql-flexible-server/

  • Oracle Database 23c Free发布

    ·

    前两天,Oracle正式发布了第一个23c版本(参考),是一个面向开发者、全功能的、但资源使用受限、无patch支持的免费版本,可以说是一个尝鲜版本。该版本和之前的Express版本(XE)类似,免费、资源使用受限、无支持、无patch、几乎全功能。

    所以,Oracle免费? 然而并没有。看起来是个大新闻,其实并没什么。还是看看都发布了一些什么吧:

    这次,更加强调“面向开发者”

    原文如下:

    Developers are the most important constituency in tech decision making today. Therefore getting tools into their hands with a minimum of friction is more important than ever. Oracle Database 23c Free – Developer Release is designed to remove obstacles to developer access, allowing devs to define the ecosystem without requiring permission. This is a radical departure for Oracle,” said James Governor, co-founder of RedMonk.

    ChatGPT的翻译如下:

    如今,在科技决策中,开发者是最重要的群体。因此,让他们能够轻松地使用各种工具变得越来越重要。Oracle Database 23c 免费开发者版本旨在消除开发者使用上的障碍,让开发者在不需要许可的情况下自由地定义生态系统。这对 Oracle 来说是一个彻底的转变。

    该版本的限制包括(参考):

    首先,这个版本本身是没什么限制的,你可以在任何环境和场景下使用,但是其本身的能力/限制是巨大的:

    • 仅支持2颗CPU资源
    • 仅支持2GB内存
    • 仅支持12GB数据存储
    • 没有patch支持
    • 没有官方的服务支持

    所以,与之前的Express版本类似,是一个小范围测试验证的版本。

    主要更新

    23c主要功能更新(很可能也是23c的主要更新,参考)包括:

    • 增强对JSON类型的支持
    • JavaScript存储过程增强(GraalVM)
    • 图能力增强(事务与分析)
    • Kfaka API增强
    • ……

    友好的Docker化安装

    可以通过Docker命令非常简单的安装该版本:

    docker pull container-registry.oracle.com/database/free
  • 滕王阁远眺八一大桥

    ·

    上面的照片中,周陌和袁华钦两人,凭在滕王阁主楼的栏杆上,眺望远处。楼下近处是滕王阁的辅助楼阁,远处是以纪念1927年的南昌起义而命名的“八一大桥”,桥下是贯穿江西南北的赣江。赣江对岸则是繁华的现代都市南昌,也就是王勃诗文中的“豫章故郡,洪都新府”。

    白天的城市可能用“繁华”二字可能显得有些夸张,那看看江畔南昌夜景吧:

    (more…)