OceanBase V4 中 SELECT INTO OUTFILE 与外表(External Table)的区别是什么?各适用什么场景?

OceanBase V4 中 SELECT INTO OUTFILE 与外表(External Table)的区别是什么?各适用什么场景?

SELECT INTO OUTFILE 是一条 SQL 语句,用于将查询结果导出到文件(本地路径或 OSS 等对象存储),支持指定分隔符、并行导出等。

  • 适用场景:轻量级数据导出、按条件筛选导出部分数据、快速将查询结果生成 CSV/Parquet 等文件。
  • 注意:受 secure_file_priv 参数限制,不能任意写入服务器目录;仅导出数据,不导出 DDL。

外表(External Table) 是数据库中定义的只读表对象,数据实际存储在外部文件(本地、HDFS、OSS 等)中,可像普通表一样查询。

  • 适用场景:外部数据直接查询分析、与内表 JOIN、作为数据导入的中间层(INSERT INTO ... SELECT FROM 外表 )。
  • 注意:外表只读,不支持 DML、不支持创建索引和约束。

核心区别: OUTFILE 是"导出"操作,把数据库数据写到外部文件;外表是"读取"操作,把外部文件映射为数据库中的只读表。

如果想继续练,可以让我按 LOAD DATA 导入方式对比、AWR/ASH 性能诊断、全局索引与本地索引选择策略 再出一轮简答题。