从 GUI 到 CLI:掌握 psql,做更专业的 PostgreSQL 工程师

19 阅读4分钟

c83e22c4-99f0-4a66-803b-b2461e915d74.png 2025年Stack Overflow榜单又炸了,PostgreSQL以55.6%的占有率直接封神,把MySQL甩开几条街!

但问题来了——你的薪资涨了吗?

数据显示,精通Postgres的开发者比隔壁MySQL兄弟平均薪资高出12%,招聘需求更是暴涨73%。 还没反应过来?敢情大家都在用GUI点点点,真正的老鸟早就切回黑窗口(CLI)大杀四方了。

试想一下:生产环境崩了,你通过VPN连上服务器,网速慢得像2G,DBeaver光加载表结构就转圈转了3分钟... 这时候,隔壁大佬敲了几个字符,问题已经定位了。

今天不整虚的,扒一扒PostgreSQL自带的核武器——psql。这就是从“点工”进化到架构师的入场券。

拒绝臃肿!DBeaver吃掉5G内存?

我们先看个恐怖故事。有老哥在Github吐槽,DBeaver开久了竟然能吃掉5GB内存,简直是Chrome附体。

psql呢?几MB搞定。这不仅是资源问题,更是思维方式的降维打击。

CLI is thousands of times faster for repetitive tasks.[^4]

别让贫穷限制了想象力,扔掉鼠标,我们直接起飞。

快速进入战场:拒绝迷路

连接数据库还在用鼠标一层层点开树状图?太Low了。

\l (list):秒出所有数据库列表。 \c (connect):瞬间切换数据库。 \dt (display tables):当前库下的表,立正站好。

什么概念? 当你还在等Navicat拉取几千张表的元数据时,\dt 的结果已经打印在屏幕上了。天下武功,唯快不破。

拯救颈椎!治好你的“乱码”焦虑

在命令行查数据,最怕遇到那种几十个字段的宽表,一行数据显示成三行,看起来就像乱码,心态直接崩了有没有?

神器登场:\x (expanded display)

输入 \x 回车,再跑一次查询。 Boom! 横向表格瞬间变成纵向的“卡片模式”,字段名在左,值在右,清晰得像刚洗完澡一样。

这也是很多所谓“高级DBA”秘而不宣的装X技巧。下次当着同事面敲一个 \x,享受他们崇拜的眼神吧。

像黑客一样写SQL:脱离复制粘贴

你是不是还在记事本里写好几十行SQL,然后再复制到终端里?万一报错了,还得切出来改完再粘贴?

累不累啊兄弟!

\e (edit):召唤神龙。 直接输入 \e,psql会自动调用系统默认编辑器(通常是Vim或Nano)。你在里面舒舒服服写完长篇大论的SQL,保存退出,psql自动执行!

这才是真正的工作流(Workflow)。

\i (include):批量执行脚本。 \i init_data.sql 一键执行外部文件。运维大佬们搞自动化部署、数据迁移,全靠这一招。什么叫专业?这就叫专业。

深度透视:比GUI看得更全

很多新手觉得GUI显示的表结构最全,其实是大错特错。

\d [table_name]:查看表结构。 它不仅显示字段类型,连索引、外键约束、默认值都给你安排得明明白白。更绝的是 \d+,还能看到表的大小和描述信息。

数据不会撒谎。在排查性能问题时,这一眼看到的索引信息,可能就是你拯救服务宕机的关键。

知进退:遇到不懂别瞎猜

最后两个保命指令,送给所有不想删库跑路的勇士。

\h [sql_command]:比如 \h CREATE INDEX。 直接在终端看SQL语法帮助,比你去切浏览器搜文档快了不止十倍。

\q (quit):安全退出。 别硬按 Ctrl+C 了,体面一点。

写在最后

啧啧,当我们还在争论哪个GUI配色好看时,真正的技术专家已经用 psql 把活干完了。

掌握这10个命令,覆盖了你80%的日常运维需求。这不是在让你装极客,而是在任何极端环境下(断网、堡垒机、无图形界面),你都能成为那个最后兜底的人。

最好的还在后面。

你在用 psql 时还发现过哪些冷门黑科技?评论区里来battle一下!看看谁才是真正的Postgres大神!