当前位置: 首页 > news >正文

字段太多看不全,ksql 的展开模式和输出控制怎么用

MySQL 里查宽表,字段多了输出就会折行,列对应关系容易看乱。MySQL 的解法是在 SQL 末尾加\G,把每行的字段竖着列出来。ksql 里处理这个问题的方式不同——通过几个元命令控制整个会话的输出行为,不用每条 SQL 末尾单独加。

这篇在KingbaseES V009R001C010环境里验证:\x(展开模式)、\x auto(自动判断)、\timing(执行耗时)、\pset border(边框调整)、\o(输出重定向)。演示在app_db库的app_schema.t_meta_demo表上进行,用app_user连接,进入后先执行set search_path to app_schema, public让后续查询不带 schema 前缀。

有几个活动推荐给大家:

“1、荐商机·赢好礼——金仓社区“同行者计划”开启(https://bbs.kingbase.com.cn/forumDetail?articleId=1d09d598f414ab764eda4907e8f54758)
2、2026金仓数据库智能运维工具开发大赛(https://bbs.kingbase.com.cn/forumDetail?articleId=2394013b19f3ef84a43edb994692b88e)(https://bbs.kingbase.com.cn/forumDetail?articleId=6152608d769b472397ccfbd29879c0bd)”

默认输出下的宽表问题

关掉分页器,直接查全表:

\pset pageroffselect*fromt_meta_demo;

t_meta_demoidorder_nouser_namestatusamountcreated_at六个字段,终端宽度不够时每行折成多行,字段名和值的对应关系很难一眼看清。这就是\x要解决的问题。

\x 开关:竖排展开和关闭

打开展开模式,再查一次:

\xselect*fromt_meta_demolimit2;

再执行一次\x关掉,对比两次输出:

\xselect*fromt_meta_demolimit2;

\x打开后 ksql 提示Expanded display is on,输出格式从横排表格变成竖列展示,每个字段单独一行,格式是字段名 | 值。再次执行\x提示Expanded display is off,恢复横排。

MySQL 里竖排显示用的是select ... \G,写在 SQL 末尾,只对那一条语句生效。\x是会话级开关,打开以后所有查询都走竖排格式,不需要每条 SQL 后面加。连续查几张宽表时,\x\G省事得多。

\x auto:让 ksql 自己决定要不要展开

手动切\x来回有点麻烦。\x auto模式下 ksql 自动判断:

\x auto

ksql 返回Expanded display is used automatically

查单行结果:

select*fromt_meta_demowhereorder_no='ORD-20240601-001';

再查多行:

select*fromt_meta_demo;

单行查询下 ksql 自动用了竖排展开;多行查询 ksql 判断终端宽度够用,直接输出横排表格。

\x auto的判断依据是当前终端宽度,不是字段数量。同一张表,终端窗口调窄 ksql 更倾向于展开,调宽相同查询可能回到横排。MySQL 里没有这个模式,\G每次都要手写在 SQL 末尾。

\timing 显示执行耗时

关掉展开模式,开启计时:

\xoff\timing

执行几条查询观察耗时:

selectcount(*)fromt_meta_demo;select*fromt_meta_demowherestatus='paid';selectuser_name,sum(amount)fromt_meta_demogroupbyuser_name;

\timing开启后提示Timing is on,每条 SQL 执行完都会跟着一行Time: x.xxx ms

MySQL 里看执行耗时通常需要show profiles或者借助客户端工具,ksql 里\timing打开以后自动附在每个结果后面,不用额外操作。

\timing给的是客户端侧的壁钟时间,包含网络往返和客户端处理,只适合粗粒度判断某条查询快不快。精确分析 SQL 是否走了索引、各执行节点耗时分布,要用EXPLAIN (ANALYZE, BUFFERS),不能把\timing当性能分析工具来用。

\pset border 调整输出边框

关掉计时,演示三种边框样式:

\timingoff

默认边框(border 1):

\pset border1selectorder_no,user_name,status,amountfromt_meta_demolimit3;

无边框(border 0):

\pset border0selectorder_no,user_name,status,amountfromt_meta_demolimit3;

双线边框(border 2):

\pset border2selectorder_no,user_name,status,amountfromt_meta_demolimit3;

三种样式的差别:

  • border 1:列之间用|分隔,标题行下有+---+---+形式的分隔线,是默认样式
  • border 0:去掉所有分隔符,列之间只有空格,标题和数据之间用短横线对齐
  • border 2:整个结果集外面加一圈完整边框,顶部、底部、标题和数据之间都有分隔线

\pset border只改显示格式,不影响数据,切换后立即生效。MySQL 客户端输出的边框样式固定,ksql 这里可以按需调整。border 0在把终端输出粘贴进文档时最有用,不用手动清格线。演示完以后恢复默认:

\pset border1

\o 把输出写进文件

在交互会话里把查询结果重定向到文件,不需要退出去用 shell 重定向:

\pset border1\o/tmp/ksql-output.txtselectorder_no,user_name,status,amountfromt_meta_demo;\o

\o /tmp/ksql-output.txt打开后,ksql 不再把查询结果输出到终端——select执行后提示符直接回来,没有任何表格输出,结果都写进了文件。\o不带参数,关闭重定向,恢复终端输出。在另一个终端用cat /tmp/ksql-output.txt可以看到全部五行数据,和直接在终端查的结果一致。

有一个坑容易踩:关闭重定向必须用\o不带任何参数。忘了关的话,后续所有查询输出包括元命令的提示都会继续写文件,终端里什么都看不到,很容易以为命令没执行。MySQL 里在交互会话内导出结果通常要借助外部工具,ksql 里\o可以直接在会话内切换,用完记得关。

http://www.jsqmd.com/news/1113027/

相关文章:

  • ACT:Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
  • 【保姆级】VMware17.0.1虚拟机安装教程与下载步骤分享
  • Doris离线部署与虚拟机扩容实战:从环境准备到资源管理的完整指南
  • chatgpt品牌优化:出海品牌AI流量布局新思路
  • SQL优化-索引扫描
  • AI认证不是文凭,而是可验证的工程能力锻造清单
  • 关于单片机降功耗的五大策略
  • 最新AI量化开发效率,交易认知和技术实现要一起走
  • 2026年罗马尼亚EOR名义雇主服务商权威排行榜:揭晓五款精选五大方案
  • OpenSolon 开源框架:7 年开源,近半年下载 1200 万次,或可替换 Spring 生态
  • 4563563
  • 多维聚合实战:维度拓扑、度量规则与数据变形链路
  • 合同管理的“三级跳”:道本×DeepSeek如何把三件事做到位
  • 【关于Tomcat 并发量】
  • 本地AI项目安全部署:使用Docker实现环境隔离与资源管控
  • AI编程助手实战对比:Deepseek-V4 vs Claude-Opus工程能力深度解析
  • 东莞食品品牌策划设计公司推荐:视维(SIVIBRAND),让食品品牌从“好看”到“好卖”
  • 从Notebook到生产:机器学习模型服务化七步加固指南
  • 仅限前500名开发者获取:LLM提示工程白皮书V3.2(含GPT-4.5适配层提示词迁移方案)
  • 2026视频去水印方法有哪些?靠谱视频去水印软件推荐
  • 机器学习论文精读四步法:从无效阅读到可复现操作
  • 机器学习系统工程实战:从模型上线到稳定服务的全链路体检
  • FastAPI+ONNX+K8s:机器学习模型生产化落地实战
  • 最近折腾了很多C++ GUI,感觉没有前端或者移动端的UI来的痛快~最近找到了这个叫做 Sciter.JS 的可嵌入式的HTML/CSS/JS 引擎,
  • 豫北工装产业上下游配套协同发展现状深度梳理
  • 生产级机器学习模型服务化落地实战指南
  • 高效实现B站缓存视频转换:m4s到MP4的无损转换专业方案
  • 新一代浏览器自动化框架:如何系统性解决Selenium的七大痛点
  • ApiGo:AI 驱动的低代码 API 平台,5.1.0 版本更新助力企业数字化转型!
  • 一句话,生成一个能交付的可视化应用 | EasyAI 开启内测