内容提要
本文介绍了使用Postgres psql cli时的好习惯,包括扩展显示模式、Unicode字符表格边框、显示查询时间、设置空字符输出、创建历史文件、显示查询语句、自定义提示符等。同时提供了示例查询语句和相关教程。
延伸解读
提升查询结果可读性的关键设置
文章介绍了几个直接改善psql输出可读性的设置。使用\x auto可在列较宽时自动切换为扩展显示,避免横向滚动;\pset linestyle unicode用Unicode字符绘制表格边框,使输出更美观;\timing显示查询执行时间,有助于性能观察;\pset null '☘️'将空值显示为特定符号,与空字符串区分。这些设置都能在.psqlrc中持久化,适合日常使用。
利用回显功能探索Postgres内部机制
psql的斜杠命令本质上是查询系统表的快捷方式。通过\set ECHO_HIDDEN on(或-E),执行\dt+等命令时会回显其底层SQL,帮助理解Postgres的目录结构和命名约定。而\set ECHO queries(或-e)会回显所有执行的查询,适合记录从文件或psqlrc运行的语句。这两个功能对学习内部表和调试很有价值。
通过.psqlrc实现个性化与效率提升
.psqlrc文件在psql启动时自动执行,可定制提示符、设置常用参数,甚至预定义查询。例如,用\set PROMPT1添加主机、数据库、日期和时间信息;用\set QUIET 1/0控制命令日志。将常用查询(如长事务、缓存命中率、未使用索引、表大小)定义为变量后,只需输入:long_running即可执行,大幅减少重复输入。
远程连接时的注意事项
文章建议,如果经常远程连接数据库而非使用本地连接,不要创建过多特殊工具或复杂配置,因为不同环境可能导致使用不便。这一提醒有助于避免因环境差异带来的困扰,保持配置的简洁和可移植性。
Q&A
如何在Postgres psql中设置扩展显示模式?
可以使用命令 \x auto 来自动格式化扩展显示,以便更好地展示查询结果。
如何在psql中使用Unicode字符设置表格边框?
使用命令 \pset linestyle unicode 可以设置表格边框为Unicode字符,使输出更美观。
如何在psql中显示查询执行时间?
可以使用命令 \timing 来始终显示查询执行时间,帮助优化查询性能。
如何创建psql的历史文件以保存命令记录?
可以使用命令 \set HISTFILE ~/.config/psql/psql_history-:DBNAME 来创建历史文件,并设置保存的命令数量。
如何在.psqlrc文件中自定义psql的提示符?
可以在.psqlrc文件中使用 \set PROMPT1 来设置自定义提示符,例如包含主机名和当前日期时间。
psql中如何使用回显命令查看执行的SQL查询?
可以使用命令 \set ECHO_HIDDEN on 来显示执行的SQL查询,帮助理解内部表和命名约定。