---
title: SQL 查询触发笛卡尔积怎么处理-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 SQL 查询触发笛卡尔积怎么处理相关的常见问题和使用技巧，帮助您快速解决 SQL 查询触发笛卡尔积怎么处理的难题。
---
切换语言

- 简体中文
- English

划线反馈

# SQL 查询触发笛卡尔积怎么处理

更新时间：2025-07-08 02:11

适用版本： V4.0.x、V4.1.x、V4.2.x、V4.3.x 内容类型：How-to  

## 问题现象

业务从 MySQL 迁移至 OceanBase 数据库 V4.3.5 BP2 版本 MySQL 模式下，SQL 查询不出结果，用 `EXPLAIN EXTENDED` 命令展示执行计划信息。

![image01](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/performance/20250707how-to-handle-cartesian-product-triggered-by-sql-query01.png)

输出返回结果如下:

![image02](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/performance/20250707how-to-handle-cartesian-product-triggered-by-sql-query02.png)

由上执行计划信息可知存在笛卡尔积。

## 问题原因

默认的计划不优原因是优化器默认把子查询延后计划，导致先做笛卡尔积的数据量非常大。

## 适用版本

OceanBase 数据库 V4.x 版本。

## 解决方法

OceanBase 数据库 V4.3.5 BP2 版本已优化的一个功能，优化之后这个场景也是需要通过 Hint 干预计划的，目前只在有限的场景做了自动下压。

在子查询内加 Hint `/*+PUSH_SUBQ*/`。

![image03](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/performance/20250707how-to-handle-cartesian-product-triggered-by-sql-query03.png)

添加完 Hint 以后的执行计划输出返回结果如下：

![image04](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/performance/20250707how-to-handle-cartesian-product-triggered-by-sql-query04.png)

Previous

[如何使用 Wireshark 追踪链路 SQL 执行](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002393951)

Next

[OceanBase 数据库 V4.2.1 集群在执行不带绑定变量的 SQL 语句时出现卡顿问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003137888) ![有帮助](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) 咨询热线
