皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

【开源访谈】瀚高王刚:PostgreSQL 的发展将会越来越好

PostgreSQL 是一个功能强大,开源对象关系型数据库系统,拥有超过 15 年的持续开发和经验证的体系结构,赢得了良好的声誉。关于 PostgreSQL 的学习有哪些要注意的事项?与其他数据库相比,PostgreSQL 的主要优势是什么?发展前景又如何呢?本期【开源访谈】邀请到瀚高数据库内核开发工程师王刚,聊聊他在研究过程中所了解的 PostgreSQL。【本期嘉宾】王刚, 瀚高数据库内核开发工程师,研究生期间,接触到数据库系统实现的课程,随后学习研究 PostgreSQL 源码,毕业后加入瀚高从事国产数据库的开发,目前工作集中在日志相关的技术领域。

【开源访谈】瀚高王刚:PostgreSQL 的发展将会越来越好

【访谈内容】

1、嘉宾自我介绍。(学习、工作经历,以及主要负责的领域等)

我是在研究生阶段深入接触到数据库,主要是因为我导师从事数据库研究,他给我们开了数据库系统实现的课程,然后我就进入了数据库领域。研究生期间参加过两次会议,都是跟数据库有关的,这些经历对我影响挺深,以至于想以后从事数据库相关的工作。找工作也是毫不犹豫的找数据库相关的工作。加入瀚高后,主要负责数据库日志模块的研究与开发工作。

2、您是如何与 PostgreSQL 结缘,并成为数据库方面的专家的?

专家肯定是称不上的,只能算菜鸟了,与 PostgreSQL 结缘也是因为导师,之前只是听说过 PostgreSQL,没有深入接触过,后来导师让我看看 PostgreSQL 的代码,这才走上研究 PostgreSQL 的大道。我也希望能结识 PostgreSQL 内核的大牛们。

3、PostgreSQL 目前在国内外非常流行,其主要原因是什么?

PostgreSQL 这几年在国内越来越流行,阿里、平安科技、瀚高等企业都选择了 PostgreSQL,这其中有国内 PostgreSQL 社区推广的原因,我觉得更重要的原因还是在于 PostgreSQL 本身。PostgreSQL 起源于伯克利大学,可谓是出身名校,并且 PostgreSQL 完全由社区开发,没有大公司掌控,开放的协议便于公司在其基础上做二次开发。PostgreSQL 某些功能至今依然是很多数据库不具备的,以上这些我认为是 PostgreSQL 在国内外流行起来的主要原因。

4、PostgreSQL 对传统数据库是否构成威胁?传统数据库有哪些痛点呢?

我认为不算是威胁,PostgreSQL 也还是属于关系数据库的范畴,因为 PostgreSQL 本身的很多技术都来源于传统数据库,比如说查询优化、事务等。PostgreSQL 在传统数据库的基础上引入了很多新的技术,比如说对 NoSQL 的支持,对象概念的支持。这些恰好是传统数据库的弱势。随着大数据、云计算的流行,传统数据库确实显现了一些不足,高并发下性能低,可扩展性差,但是关系型数据库依然有很多问题值得人们深入研究。

5、与 MySQL 和 MongoDB 相比,PostgreSQL 的核心优势是什么?

首先,PostgreSQL 是最先进的数据库,其内部支持的技术多,比如查询优化的手段比 MySQL 多,PostgreSQL 支持类型拓展、函数拓展,用户在 PostgreSQL 的基础上很容易完成拓展。

与 MongoDB 相比,PostgreSQL 又具有关系型数据库的优点,支持事务,而且现在也支持 NoSQL 类型,应该说 PostgreSQL 的功能是非常完善且强大的,这些都是它的核心优势。

6、谈谈 PostgreSQL 的现状以及未来的发展趋势?

PostgreSQL 在国内发展势头很好,越来越多的公司认可 PostgreSQL,PostgreSQL 本身也不断的加入新的功能,PostgreSQL v9.6 支持并行查询,提高了查询性能,即将发布的 PostgreSQL 10 支持内置分区表。

PostgreSQL 对 NoSQL 也有很好的支持,也可以利用 fdw 轻松的访问其他数据源,这些先进的技术使 PostgreSQL 拥有很好的前景。PostgreSQL 分会的成立,将促进 PostgreSQL 在国内的发展,以后会有更多的企业使用 PostgreSQL。

7、新手应该如何系统地学习 PostgreSQL,您的建议是什么?

我觉得基础很重要,数据库系统的基本概念需要搞清楚,数据库的整体架构需要明白,最好是要了解数据库的技术演进的历史。多读读手册是有帮助的,多参与社区活动。

8、作为数据库领域的专家,能否向大家分享一下您的开发经验,优秀的 DBA 是如何炼成的?

作为刚入职场的菜鸟,经验谈不上了,我讲讲的我的学习经历。第一要具备热情,因为数据库内核有时候是挺枯燥的,庞大的代码,晦涩的理论,需要有耐心,其次要多动手,无他熟尔。

转自 https://www.oschina.net/question/2903254_2263301