7 款常用的 PostgreSQL GUI 工具测评
liuian 2024-12-07 14:57 16 浏览
首发于7 款常用的 PostgreSQL GUI 工具测评 | 码匠技术博客
全文 2550 字 阅读时间约 8 分钟
作为一名应用开发者,您对 PostgreSQL(简称 Postgres)一定不陌生,在 StackOverflow 2021 年度开发者调查中,PostgreSQL 是开发人员第二常用的数据库,并且在使用过的用户中,使用满意度高达 70%(仅次于 Redis)。
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 GUI,码匠 UI 界面设计更加适合国内场景,同时整合了多款国内数据源,包括飞书、企业微信、钉钉、阿里云 OSS,等等。不仅如此,码匠还提供了国内业务场景下常见的租户管理、更加细粒度的权限控制、审计日志等功能,为您的企业信息安全保驾护航。
如何在上述 PostgreSQL GUI 中进行选择?
那么哪个是最好的 PostgreSQL GUI?码匠的答案是:视情况而定。
如果您是一名独立分析师,希望通过单个数据库实例进入透明且可重复的工作流中,可以选择 DBeaver、Beekeeper Studio 或 DataGrip。
如果您是大型团队的一员,那么可以选择需要付费的 Navicat,因为 Navicat 更加专注于团队协作。
如果您是一名专注于 Postgres 的 DBA,PgAdmin 是一个绝佳选择。也就是说,对分布式服务器的需求通常只出现在能够处理这种配置的熟练开发人员身上。
如果您是一位初学者,想必可以选择 QueryPie,其设计宗旨是为了让用户能够“像做馅饼一样容易地”查询数据库。
当然,如果您不满足于普通 PostgreSQL GUI 的使用或者有着数据看板搭建、内部应用开发等高阶诉求,也环境使用码匠,码匠在支持快速连接数据源的同时,还帮您打通了前后端、权限、审计等功能,为您的内部系统开发提供了一站式服务。目前提供了云端在线版本和私有化部署方案,如果您希望进一步体验码匠的功能,欢迎与我们联系。
本文为原创内容,版权归「码匠」所有,欢迎文末点赞、收藏、评论!转载请联系我们~
相关推荐
- GCI: Another key public good for international community
-
MembersofadelegationofhighschoolstudentsfromtheU.S.stateofWashingtonposeforaphotoa...
- kube on kube 实现思路分享(kube-scheduler)
-
这里的kubeonkube,是指建立K8s元集群,纳管其他业务K8s集群,通过声明式API管理集群的创建、增删节点等。参考https://github.com/kubean-i...
- China and India hold the key to a more inclusive global future
-
ByMayaMajueranLead:AsChinaandIndiamark75yearsofdiplomaticties,theircooperationcouldse...
- 日本真子公主的婚礼又要提上日程了吗?未婚夫:债务问题已解决
-
日本明仁天皇将于今年3月31日退位,德仁皇太子即将成为新一任的天皇。在平成时代最后的倒计时中,明仁天皇的孙女真子公主的婚事却又一次进入了人们的视野。(viaTheTelegraph)关注日本皇室的...
- kratos源码分析系列(1)(kvm源码解析与应用 pdf)
-
https://github.com/go-kratos/kratos是b站开源的一个微服务框架,整体来看它结合grpc生态中的grpc-gateway,以及wire依赖注入和众多常用的trace,m...
- 【2.C#基础】6.循环语句(c#循环语句例子)
-
6.循环语句当需要多次执行同一个处理时,就需要用到循环语句。一般情况下,循环的流程图如下:6.1while循环C#中的while循环语句在给定的条件为真的情况下会重复执行目标语句。格式如下:...
- 使用 Google Wire 在 Go 中进行依赖注入
-
关注点分离、松耦合系统和依赖反转原则等概念在软件工程中是众所周知的,并且在创建良好的计算机程序过程中至关重要。在本文中,我们将讨论一个同时应用了这三个原则的技术,称为依赖注入。我们将尽可能地实践,更加...
-
- 用 Golang封装你的API(golang封装dll)
-
每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。@头条创作挑战赛本文探讨了在用Golang封装你的API的过程以及几个不同的编程步骤。我做了一个非常有限的时间来证明如何为客户正在开...
-
2025-05-09 20:03 liuian
- Terraform 实战 | 万字长文(terrify是什么意思中文)
-
Terraform是什么Terraform(https://www.terraform.io/)是HashiCorp旗下的一款开源(Go语言开发)的DevOps基础架构资源管理运维工具,可...
- Go 语言入门:环境安装(go语言安装 window)
-
一、前言这里不同于其他人的Go语言入门,环境安装我向来注重配置,比如依赖包、缓存的默认目录。因为前期不弄好,后面要整理又影响这影响那的,所以就干脆写成文章,方便后期捡起。二、安装1.安装包htt...
- Go语言进阶之Go语言高性能Web框架Iris项目实战-项目结构优化EP05
-
前文再续,上一回我们完成了用户管理模块的CURD(增删改查)功能,功能层面,无甚大观,但有一个结构性的缺陷显而易见,那就是项目结构过度耦合,项目的耦合性(Coupling),也叫耦合度,进而言之,模块...
- 如何将Go项目与Docker结合实现高效部署
-
在现代软件开发中,使用Docker部署应用程序已经成为一种标准实践。本文将深入探讨如何将Go项目与Docker结合,实现高效、可靠的部署过程。通过详细的步骤和丰富的示例,你将能够迅速掌握这一流程。准备...
- 五分钟轻松熟悉一个k8s Operator应用制作
-
简介:operator是一种kubernetes的扩展形式,可以帮助用户以Kubernetes的声明式API风格自定义来管理应用及服务,operator已经成为分布式应用在k8s集群部...
- 程序员的副业秘籍!一款可以快速搭建各类系统的后台管理系统
-
系统简介这是一个基于Gin+Vue+ElementUI(或ArcoDesign、AntDesign)的系统快速开发平台,采用了前后端分离,旨在帮助用户快速完成各类系统的基础功能搭建。平...
- 使用 Go 语言开发区块链钱包的项目目录结构设计
-
在开发区块链钱包时,项目的目录结构应该清晰、模块化,确保代码的可维护性和扩展性。基于Go的惯例,结合区块链钱包的功能需求,以下是一个较为合理的目录结构示例:1.目录结构blockchain-wa...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
python使用fitz模块提取pdf中的图片
-
《人人译客》如何规划你的移动电商网站(2)
-
Jupyterhub安装教程 jupyter怎么安装包
-
- 最近发表
-
- GCI: Another key public good for international community
- kube on kube 实现思路分享(kube-scheduler)
- China and India hold the key to a more inclusive global future
- 日本真子公主的婚礼又要提上日程了吗?未婚夫:债务问题已解决
- kratos源码分析系列(1)(kvm源码解析与应用 pdf)
- 【2.C#基础】6.循环语句(c#循环语句例子)
- 使用 Google Wire 在 Go 中进行依赖注入
- 用 Golang封装你的API(golang封装dll)
- Terraform 实战 | 万字长文(terrify是什么意思中文)
- Go 语言入门:环境安装(go语言安装 window)
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- table.render (33)
- uniapp textarea (33)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- react-admin (33)
- vscode切换git分支 (35)
- vscode美化代码 (33)
- python bytes转16进制 (35)