# SQL 执行

MyScale 提供了一个 SQL 工作区,您可以在其中编辑、运行、保存 SQL 工作表,并查看查询结果。

# 打开 SQL 工作区


SQL 工作区 可以通过侧边导航栏访问。

# 使用 SQL 工作区

SQL 工作区分为三个主要区域:

  • 左侧是 “对象查看器”,您可以浏览数据库的表和视图。在查看任何对象之前,需要先启动相应的集群。您可以选择在查看器中选择一个对象(如表及其列和数据类型)以查看其特定属性。
  • 右上方是 “编辑器”,您可以在其中编写 SQL 语句、保存 SQL 工作表和运行 SQL 语句。
  • 右下方是 “结果”,您可以在其中查看当前 SQL 语句的运行状态和结果。

使用 SQL 工作区

# 工作区中的集群操作

“对象查看器” 提供了管理用于执行 SQL 语句的集群的选项。您可以从查看器的顶部切换集群、启动集群或停止集群。要选择特定的集群来运行 SQL 语句,只需单击集群选择列表并选择所需的选项。

# 编辑器

编辑器 可以帮助您组织 SQL 语句。每个语句必须以分号(;)结尾,一个工作表支持多个查询语句。

编辑器

# 语句自动补全

在编辑器中输入 SQL 语句时,MyScale 会提供关键字和对象名称的建议。按下 Tab/Enter 键可以快速将建议列表中的第一个单词添加到语句中,或者您可以使用箭头键选择列表中的其他项,然后按下 Tab/Enter 键。

# 格式化功能

您可以点击“格式化”按钮或使用快捷键 opt/alt+shift+f 来格式化整个编辑器。

我们建议在输入较长的内容(如高维向量数据)时使用格式化功能,以在编辑器中呈现更清晰的界面。这样可以方便您验证和检查 SQL 语句。

格式化之前:

格式化之前

格式化之后:

格式化之后

# 自动换行模式

如果您希望方便地查看高维向量数据的完整概览,可以尝试使用快捷键 opt/alt+z 切换自动换行模式的开启或关闭。

自动换行模式关闭:

自动换行模式关闭

自动换行模式开启:

自动换行模式开启

# 键盘快捷键

您可以点击键盘图标查看可用的键盘快捷键,或者您可以参考键盘快捷键页面上的完整列表。

键盘快捷键

# 运行工作表

要执行查询,请在 SQL 编辑器中输入 SQL 命令,然后单击“运行”按钮或使用快捷键 cmd/ctrl+enter

查询执行选项:默认情况下,当您使用“运行”按钮时,将执行所选的命令。如果您没有选择任何命令,MyScale 将自动分隔 SQL 语句,并在光标所在位置运行语句。

同时,如果您想按顺序运行 SQL 编辑器中的所有命令,可以单击运行按钮右侧的下拉按钮,然后选择“运行全部”(或使用快捷键 cmd/ctrl+shift+enter)。

# 查看结果

在 SQL 语句运行时,其状态将显示在 结果 部分。

# 执行状态

SQL 查询有五种执行状态,分别是 执行中成功后台已取消错误

每个查询都有一个最大执行时间限制,默认为 30 秒。如果查询超过此时间限制,可能会发生以下两种情况之一:

  1. 如果查询是 SELECT 语句,它将被取消并抛出错误。
  2. 对于其他所有语句,它们将转换为 后台 状态。如果您想监视此查询的执行状态,请使用以下语句。
SELECT * 
FROM clusterAllReplicas('{cluster}', system.query_log)
WHERE query_id='YOUR_QUERY_ID'
ORDER BY event_time_microseconds DESC
LIMIT 1;

YOUR_QUERY_ID 可以在 执行统计信息 中找到。

# 查询结果

查询完成后,结果部分将显示最新 SQL 运行的结果和查询执行的统计信息。

查看结果

结果表中最多有 10,000 行。如果查询返回的结果超过 10,000 行,请参考 导出结果到本地磁盘 部分下载结果以获取所有结果。

您可以点击单元格以查看该单元格的具体内容。

查看内容

# 执行统计信息

您可以通过打开 统计信息 选项卡查看查询执行统计信息。


术语 定义
查询 ID 当前操作的 ID。
用户 创建此操作的用户。
持续时间 此操作的总持续时间分为两个阶段:传输和执行。
行数 查询结果返回的行数。
结束时间 操作结束的时间。

术语 定义
传输 传输指的是用于网络传输等非执行任务的时间。
执行 执行指的是数据库执行查询所花费的时间。

# 导出结果到本地磁盘

运行查询后,您可以选择将结果导出到本地硬盘。

  • 单击如下图所示的下载图标:
  • 您可以选择下载为 .csv、.json 或 .tsv 格式。MyScale 将根据您的选择将文件下载到浏览器的默认下载位置。

# 保存工作表

每当执行 SQL 语句时,MyScale 会自动保存当前工作表的内容。您可以随时从任何设备登录以查看此工作表的内容。