作为一名应用开发者,您对 PostgreSQL(简称 Postgres)一定不陌生,在 StackOverflow 2021 年度
开发者调查
中,PostgreSQL 是开发人员第二常用的数据库,并且在使用过的用户中,使用满意度高达 70%(仅次于 Redis)。
数据库使用率排名,MySQL 第一,PostgreSQL 排名第二
PostgreSQL 使用好评率高达 70.4%
PostgreSQL 本身附带一个名为 psql 的内置 CLI,但有些人不喜欢通过命令行编写查询。接下来这篇文章,码匠将列举和介绍可用于查询、可视化与分析 PostgreSQL 数据的 GUI 工具。
PgAdmin
PgAdmin
是 PostgreSQL 用户最流行的 GUI 之一。在左侧菜单中可以立即轻松找到数据库对象,现在我们使用的主要是 PgAdmin 4 版本,它支持 PostgreSQL 的所有功能,同时也是个开源项目。
优点
PgAdmin 的最大优势在于开发者无论在什么地方都能使用它,它本质上是一个 Web 应用,因此可将其部署在任何云服务器上运行,同时支持多种操作系统(Windows、Linux 和 MacOS)。
其次,PgAdmin 的 SQL 编辑器为避免 PostgreSQL 用户在处理数据时花费大量时间,提供了大量有用的
快捷键
,这些快捷操作涵盖了您在编写和执行查询时所需要的大部分操作。
缺点
PgAdmin 整体交互对于新手用户不够友好,菜单和目录树设置理解成本较高。此外,对于不是 CLI 专家的 SQL 开发人员来说,PgAdmin 存在安装困难的问题。从终端将启动 Web 应用程序运行,管理多个服务器、数据库集群等,这种高级的终端技能对新手来说无疑是个极大的挑战。
Navicat
Navicat
是一个付费工具,它比典型的开源工具具有更多的功能。Navicat 虽不像 PgAdmin 那样受欢迎,但它能够提供很多开发者期望软件所具有的功能,使得与数据库的对话更容易,例如 Navicat 支持多种 SQL 语言,如 MongoDB、MySQL 和 PostgreSQL。
优点
Navicat 安装方便,易于启动和运行,且具有多种功能,可以通过调度器提高团队编写 SQL 的能力。Navicat Cloud 还允许 Navicat SQL 特定的团队进行协作,能够轻松连接到各种数据源(如云数据库、本地平面文件或 SSH 隧道和 SSL)。
此外,Navicat 还带有一个强大的数据建模工具,它可以让您将数据库结构和设计模式可视化。在外观方面,Navicat 的 GUI 美感比 pgAdmin 的更加流畅和现代,用户还可以自行选择深色或浅色主题。
缺点
Navicat 不是一个免费项目。对于希望最大限度地提高数据库用户效率的企业来说,成本可能不是那么大的问题,但如果只是想要一个简单的查询工具,Navicat 就不是一个好选择。
Navicat 试用版仅提供 14 天,之后您必须付费才能使用 PostgreSQL (
费用详情
)。
DBeaver
DBeaver
是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,可以运行在各种操作系统(包括 Windows、Linux、macOS 等)上。就像 Navicat 一样,DBeaver 也支持多种不同类型的数据库,商业版本更是可以支持各种 NoSQL 和大数据平台。且 DBeaver 支持插件扩展,并且提供了许多数据库管理工具:ER 图、数据导入/导出、数据库比较、模拟数据生成等。
优点
至少对于初学者来说,DBeaver 最好的一点(至少与目前为止的其他 GUI 相比)是它可以作为桌面应用程序运行。在左侧菜单中能够非常直观地找到数据库对象,并连接到本地 PostgreSQL 数据库。使用者无需具备 CLI 经验即可操作。
此外,DBeaver 是开源的,有免费和付费两种选择。免费的使用没有期限,但付费版本具有更多的功能,开发者可以根据自己的需求自行定夺。
缺点
如果希望使用 DBeaver 相较复杂的功能,如数据图表、分析,或者完善的分布式集群管理功能,必须转向企业收费版本。
Datagrip
Datagrip
是来自 JetBrains(IntelliJ IDEA、PyCharm 等的制造商)的人们的跨平台集成开发环境 (IDE),您可以在 Mac、Windows 和 Linux 上使用它,同时支持多种数据库。
优点
就像我们常用的 JetBrains 公司出品的 IntelliJ IDEA,DataGrip 提供了强大的功能,界面交互也与 IDEA 等其它产品保持了一贯性,因此熟悉 IDEA 使用的用户可以很轻易上手 DataGrip。此外 JetBrains 公司产品为人称道的就是他们所提供的插件体系,极大延伸了软件的可扩展性,您可以通过安装官方插件以及三方插件(甚至自己开发插件),不断增强 DataGrip 的功能。
缺点
DataGrip 是一款付费工具且价格不菲( 第一年 199 刀,后面续订可以打折)。而且与 PgAdmin 或 Navicat 不同,DataGrip 是为查询而设计的,并不能满足部署在任何云服务器上的需求。
DataGrip 对于许多小型企业来说绰绰有余,因为桌面应用程序可以帮助他们在一台或几台计算机上解决大多数紧急的数据库问题。但对于规模较大的企业来说,可能更适合选择能够云端部署和管理的工具。
Beekeeper Studio
Beekeeper Studio
是一个跨平台的开源数据库管理桌面应用程序,适用于 Mac、Linux 和 Windows 操作系统。它支持广泛的数据库集,包括 PostgreSQL、MySQL、SQLite、SQL Server、CockroachDB、Redshift 等。
优点
Beekeeper Studio 专注于提供流畅、高效且易于使用的界面,整体 UI 风格相较于其它 GUI 工具也更加现代化。整体使用下来,Beekeeper Studio 能够快速更新数据库表或运行 SQL 查询,很少出现界面卡顿现象。此外,Beekeeper Studio 团队致力于保持开源,不添加任何用户跟踪或用户监控,极大的保护了用户的隐私。
缺点
Beekeeper Studio 没有强大的监控和分析功能,因此如果您是 DBA 或需要复杂的性能监控和分析工具,最好考虑 PgAdmin 或其它产品。
QueryPie
QueryPie
是适用于 Mac、Windows 和 Linux 的跨平台数据库 IDE,支持提供云端版本和本地部署镜像,同时也支持多种 SQL 数据库的查询。
优点
UI 界面简约直观,使查询搜索和执行更加高效,且 QueryPie 具有自动完成功能,能够更快地编写查询,允许查看多个查询结果。不仅如此,QueryPie 还支持在线数据编辑,让开发者能够直接轻松地编辑查询结果和表结构。此外,QueryPie 对 Snowflake 有着
不错支持
,所以如果您对扩展到 Postgres 以外的工作有兴趣,QueryPie 会是个不错的选择。
缺点
QueryPie 团队在 2019 年发布了其 MVP 后便很少更新,在他们的博客上,最新发布的大多数帖子都可以追溯到 2020 年初。尽管 QueryPie 看起来很强大有用,但对于一个想要更多教程和最新内容工具的开发者来说,这并不适合。
码匠
当然,在使用常规的 PostgreSQL GUI 之外,我们再向您介绍一下码匠:
码匠
作为一款对开发者友好的低代码平台,也支持连接 PostgreSQL 数据库、编写和执行查询。此外,码匠还提供了一套开箱即用的组件,不仅能帮助您轻松搭建功能完善的数据看板、数据洞察,还可以让您快速搭建一个功能完善的内部应用。
码匠快速创建 PostgreSQL 数据源连接,之后可通过开箱即用的一系列组件快速搭建应用
码匠主要面向国内用户,相较于上述国外开发的 PostgreSQL GUI,码匠 UI 界面设计更加适合国内场景,同时整合了多款国内数据源,包括飞书、企业微信、钉钉、阿里云 OSS,等等。不仅如此,码匠还提供了国内业务场景下常见的租户管理、更加细粒度的权限控制、审计日志等功能,为您的企业信息安全保驾护航。
如何在上述 PostgreSQL GUI 中进行选择?
那么哪个是最好的 PostgreSQL GUI?码匠的答案是:视情况而定。
如果您是一名独立分析师,希望通过单个数据库实例进入透明且可重复的工作流中,可以选择 DBeaver、Beekeeper Studio 或 DataGrip。
如果您是大型团队的一员,那么可以选择需要付费的 Navicat,因为 Navicat 更加专注于团队协作。
如果您是一名专注于 Postgres 的 DBA,PgAdmin 是一个绝佳选择。也就是说,对分布式服务器的需求通常只出现在能够处理这种配置的熟练开发人员身上。
如果您是一位初学者,想必可以选择 QueryPie,其设计宗旨是为了让用户能够“像做馅饼一样容易地”查询数据库。
当然,如果您不满足于普通 PostgreSQL GUI 的使用或者有着数据看板搭建、内部应用开发等高阶诉求,也环境使用码匠,码匠在支持快速连接数据源的同时,还帮您打通了前后端、权限、审计等功能,为您的内部系统开发提供了一站式服务。目前提供了云端在线版本和私有化部署方案,如果您希望进一步体验码匠的功能,欢迎与我们联系。
【本文为原创内容,版权归「码匠Majiang」所有。欢迎文末分享、点赞、在看三连】转载请联系后台~
PostgreSQL 客户端应用
这部份包含PostgreSQL客户端应用和工具的参考信息。不是所有这些命令都是通用工具,某些需要特殊权限。这些应用的共同特征是它们可以被运行在任何主机上,而不管数据库服务器在哪里。
当在命令行上指定用户和数据库名时,它们的大小写会被保留 — 空格或特殊字符的出现可能需要使用引号。表名和其他标识符的大小写不会被保留并且可能需要使用引号。
PostgreSQL , pgcenter , pg_top , awr , perf insight , 等待事件 , perf , profile , 采样 , 统计信息
PostgreSQL 性能诊断的方法很多:
1、函数的性能诊断,PROFILE。
《PostgreSQL 函数调试、诊断、优化 & auto_explain & plpro
AnalyticDB for PostgreSQL(原HybridDB for PostgreSQL)作为高性能分析型数据库,可以支持用户对其业务数据进行实时分析,能够让企业敏锐感知市场动态,做出必要决策。
pgadmin 4 v3.3 开始支持geometry 类型的展示。
https://www.postgresql.org/ftp/pgadmin/pgadmin4/v3.3/windows/
如果geometry使用的是SRID 4326 (WGS 84 lon/lat)坐标系,则pgadmin会自动从OpenStreetMap 加载图层,作为背景。
在大部分 Unix 平台上,PostgreSQL会修改由ps报告的命令标题,这样个体服务器进程可以被标识。一个显示样例是
$ ps auxww | grep ^postgres
postgres 15551 0.
Online DDL 一直都是 DBA 运维时比较头疼的事,一般都会选择在业务低峰期谨慎的操作,比较常用的几个工具比如 percona pt-online-schema-change , Facebook OSC, 本质上它们都是基于触发器的,简单来讲就是通过数据库的触发器把作用在源表的操作在一个事务内同步到修改后的表中,这在业务高峰期时会极大的加重主库的负载。