---
title: 加列并建立索引复合 DDL 会降级为 Offline DDL 阻塞 DML-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于加列并建立索引复合 DDL 会降级为 Offline DDL 阻塞 DML相关的常见问题和使用技巧，帮助您快速解决加列并建立索引复合 DDL 会降级为 Offline DDL 阻塞 DML的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 加列并建立索引复合 DDL 会降级为 Offline DDL 阻塞 DML

更新时间：2026-08-25 02:41

适用版本： V4.2.x 内容类型：Troubleshoot  

## 总结说明

在 OceanBase 4.2.x 版本中，执行复合 DDL 操作（例如同时执行 `ADD COLUMN` 和 `ADD INDEX`）时，虽然单独的加列操作和单独的加索引操作各自支持 Online DDL，但混合不同类型的操作会被降级为 Offline DDL。

Offline DDL 采用“重建表”的方式执行，在操作期间会锁定表并阻塞 DML 语句，可能导致应用 SQL 执行超时。

## 详细说明

### 问题现象

执行如下 DDL 语句期间，DML 语句会被阻塞。

```sql
ALTER TABLE t_1
  ADD COLUMN api_key VARCHAR(150) DEFAULT NULL COMMENT 'xxxxx',
  ADD INDEX idx_api_key (api_key);

```

`ADD COLUMN`（列操作）与 `ADD INDEX`（索引操作）属于混合了不同类型的复合 DDL 操作。在 4.2.x 版本中，此类复合 DDL 会被降级为 Offline DDL 执行。

### 判断方法

复合 DDL 操作较难直接判断其是否为 Offline DDL。当前可行的判断方法是：

1. 在实际环境中执行 DDL 操作。
 2. 操作完成后，再次查看表的 `table_id`。
 3. 如果 `table_id` 发生了变化，则说明该 DDL 是以 Offline 方式执行的。

### 后续优化

内核侧计划引入 `EXPLAIN DDL` 语法。该语法将由内核直接返回 DDL 操作是 Online 还是 Offline 模式，无需用户在测试表上手动验证。

## 适用版本

OceanBase 数据库 4.x 版本。

上一篇

[SQL格式不兼容报错](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000006802566)

下一篇

[因时钟未同步导致 DROP TABLE 操作卡住直到超时](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000006868971) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
