openGauss数据库开发实战
上QQ阅读APP看书,第一时间看更新

前言

为什么要写这本书

数据库是信息系统的核心。国内的数据库市场长期被国际产品所主导。可喜的是,经过国内广大技术人员的不懈努力,数据库技术的国产化已经取得了巨大的进步。

目前,国内数据库厂商主要采取如下两种技术路线。

自主研发。例如,达梦公司从成立以来就始终坚持自主研发的路径,并取得了令人瞩目的成绩。

基于开源数据库进行开发。这主要是基于PostgreSQL、MySQL等国际知名开源数据库进行深度定制。其中,PostgreSQL是世界知名的开源数据库,而MySQL则是目前在国内广受欢迎的开源数据库。

华为公司基于PostgreSQL 9.2.4版本开发了GaussDB数据库,并于2020年6月将其开源,命名为openGauss。经过多个版本的迭代,openGauss数据库不断完善。

与PostgreSQL相比,openGauss数据库在很多方面进行了改进和优化,这些措施极大地提高了数据库的性能。其中最引人注目的提升有如下3点。

采用流行的UNDO技术开发了USTORE存储引擎,有效解决了数据频繁更新导致的数据文件快速膨胀的问题。

新增了增量检查点功能,缓解了PostgreSQL全量刷新数据到磁盘时可能导致的系统性能波动,使系统运行更加平稳。

XID(事务ID)从32位增加到64位,从根本上解决了事务ID耗尽的问题。

此外,openGauss数据库采用木兰宽松许可证v2发布,任何人都可以免费下载和使用,由此诞生了很多基于openGauss数据库的优秀国产数据库软件,如云和恩墨的MogDB、神州通用公司的神通数据库管理系统(openGauss版)等。这些软件产品的出现极大地推动了国产数据库生态环境的健康发展。

本书旨在提供全面且深入的openGauss数据库开发指南,不仅阐述openGauss数据库的技术原理,还特别强调其与其他数据库技术的比较,以帮助读者更好地理解openGauss数据库的工作机制。

阅读本书的建议

尽管openGauss数据库是基于PostgreSQL开发的,但由于它经历了大量的修改和调整,因此在体系结构、参数设置和SQL语法等方面与PostgreSQL存在显著差异,对于有PostgreSQL使用经验的读者来说,注意它们之间的区别尤为重要。

鉴于Oracle数据库在国内的广泛应用和庞大的用户基础,为了减少学习成本,openGauss数据库在SQL语法上与Oracle数据库基本保持兼容。因此,熟悉Oracle数据库的读者在学习openGauss数据库时会更容易,但也要注意二者在某些细节上的不同。

致谢

最后,我要向openGauss社区的贡献者们致以崇高的敬意。

付强