---
title: "强读全局索引表路由 - 数据库代理  V4.3.2 | OceanBase 文档中心"
description: 强读全局索引表路由 使用强读全局索引表路由时，ODP 会将 SQL 语句中提供的索引值作为分区键来计算路由。强读分区表时，在为分区表创建全局索引，并在后续的读写中使用索引值作为查询条件的情况下，可使用 ODP 的全局索引路由功能来提升查询效率。 您可通过配置 ODP 配置项开启强读全局索引表路由，涉及的配置项及修改方…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*nSAhQbrBXKwAAAAAAAAAAAAADiGDAQ/original) 数据库代理 V 4.3.2

# 强读全局索引表路由

更新时间：2026-04-14 17:41:09

[编辑](https://github.com/oceanbase/oceanbase-proxy-doc/edit/V4.3.2/zh-CN/600.data-routing/400.intra-tenant-routing/400.strong-read-global-index-table-routing.md)  

使用强读全局索引表路由时，ODP 会将 SQL 语句中提供的索引值作为分区键来计算路由。强读分区表时，在为分区表创建全局索引，并在后续的读写中使用索引值作为查询条件的情况下，可使用 ODP 的全局索引路由功能来提升查询效率。

您可通过配置 ODP 配置项开启强读全局索引表路由，涉及的配置项及修改方法如下。

```sql
ALTER PROXYCONFIG SET server_routing_mode = 'oceanbase';
ALTER PROXYCONFIG SET proxy_primary_zone_name ='';
ALTER PROXYCONFIG SET enable_reroute = true;
ALTER PROXYCONFIG SET enable_index_route = true;

```

## 示例

1. 执行如下命令创建主表和全局索引表

      - 创建主表

       ```sql
       obclient [test]> CREATE TABLE T0(C1 INT, C2 INT) PARTITION BY KEY(C1) PARTITIONS 8;

       ```
      - 创建全局索引表

       ```sql
       obclient [test]> CREATE INDEX T0_INDEX ON T0(C2) GLOBAL PARTITION BY RANGE(C2)  (PARTITION P0 VALUES LESS THAN (100), PARTITION P1 VALUES LESS THAN (200), PARTITION P2 VALUES LESS THAN (300));

       ```
 2. 在待执行的 SQL 语句中提供索引列值，示例如下

   ```sql
   obclient [test]> SELECT * FROM T0 WHERE C2=150;

   ```

   第一次使用索引查询将会进行随机路由，OceanBase 数据库将返回索引表的 Leader，ODP 会构建 SQL 语句到索引表名称的映射：`SELECT * FROM T0 WHERE C2=150;` -> `T0_INDEX`。再次查询该语句将直接获取 T0_INDEX 表的映射，进行计算路由。
 3. 通过诊断日志查看路由选取过程

   #### 注意

   不可使用 EXPLAIN ROUTE 命令查看路由选取过程，因为 EXPLAIN ROUTE 命令中的 SQL 不会真正转发给 OBServer 节点，所以无法查询到 `SELECT * FROM T0 WHERE C2=150;` 到 `T0_INDEX` 的映射。

   ```shell
   [2023-08-21 16:01:01.340924] [56910][Y0-00007FDF4FB404E0] [ROUTE]((*route_diagnosis=
   Trans Current Query:"SELECT * FROM T0 WHERE c2=150"

   Route Prompts
   > ROUTE_INFO
     [INFO] Will use global index table name as real table name to route

   Route Plan
   > SQL_PARSE:{cmd:"COM_QUERY", table:"__idx_500006_T0_index"}
   > ROUTE_INFO:{route_info_type:"USE_INDEX"}
   > LOCATION_CACHE_LOOKUP:{mode:"oceanbase"}
     > TABLE_ENTRY_LOOKUP_DONE:{table:"__idx_500006_T0_index", table_id:500018, partition_num:3, table_type:"USER INDEX", entry_from_remote:false}
     > PARTITION_ID_CALC_START:{}
       > EXPR_PARSE:{col_val:"c2=150"}
       > RESOLVE_EXPR:{part_range:"[150 ; 150]"}
         > RESOLVE_TOKEN:{token_type:"TOKEN_INT_VAL", resolve:{"BIGINT":150}, token:"150"}
       > CALC_PARTITION_ID:{part_description:"partition by range (P500015[{"BIGINT":100}], P500016[{"BIGINT":200}], P500017[{"BIGINT":300}])"}
     > PARTITION_ID_CALC_DONE:{partition_id:1152921504606846978, level:1, partitions:"(p1)"}
     > PARTITION_ENTRY_LOOKUP_DONE:{leader:"10.10.10.1:50109", entry_from_remote:false}
   > ROUTE_POLICY:{chosen_route_type:"ROUTE_TYPE_LEADER"}
   > CONGESTION_CONTROL:{svr_addr:"10.10.10.1:50109"}
   > HANDLE_RESPONSE:{is_parititon_hit:"false", state:"CONNECTION_ALIVE"}
   )

   ```

 上一篇 下一篇 ![有帮助](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) 咨询热线
