创新互联OceanBase教程:OceanBase访问路径概述

访问路径是指数据库中访问表的方法,即使用哪个索引来访问表。

专注于为中小企业提供成都网站建设、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业额尔古纳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

访问路径的分析是单表查询的最重要的问题之一,对于使用主表扫描的访问路径来说,执行时间一般与需要扫描的数据量(范围)成正比。一般来说,可以使用 ​EXPLAIN EXTENDED​ 命令,将表扫描的范围段展示出来。对于有合适索引的查询,使用索引可以大大减小数据的访问量,因此对于使用主表扫描的查询,要分析没有选中索引扫描的原因,是由于不存在可用的索引,还是索引扫描范围过大以至于代价过高。

OceanBase 数据库的路径选择方法融合了基于规则的路径选择方法和基于代价的路径选择方法。OceanBase 数据库首先会使用基于规则的路径选择方法,如果基于规则的路径选择方法之后只有一个可选择的路径,那么就直接使用该路径,否则就再使用基于代价的路径选择方法选择一个代价最小的路径。

在 OceanBase 数据库中,用户可以通过 HINT 来指定访问路径。访问路径的 HINT 形式如下: ​/+INDEX(table_name index_name)/

其中 ​table_name​ 表示表的名字,​index_name​ 表示索引的名字。如果 ​index_name​ 是 PRIMARY,代表选择主表扫描路径。

如下为用 HINT 来指定访问路径的示例:


obclient>CREATE TABLE t1(a INT PRIMARY KEY, b INT, c INT, d INT, INDEX k1(b,c));
Query OK, 0 rows affected (0.10 sec)

obclient>EXPLAIN SELECT/*+INDEX(t1 PRIMARY)*/ * FROM t1;
| ===================================
|ID|OPERATOR  |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t1  |1000     |476 |
===================================

Outputs & filters:
-------------------------------------
  0 - output([t1.a], [t1.b], [t1.c], [t1.d]), filter(nil),
      access([t1.a], [t1.b], [t1.c], [t1.d]), partitions(p0)


obclient>EXPLAIN SELECT/*+INDEX(t1 k1)*/ * FROM t1;
| =====================================
|ID|OPERATOR  |NAME  |EST. ROWS|COST|
-------------------------------------
|0 |TABLE SCAN|t1(k1)|1000     |5656|
=====================================

Outputs & filters:
-------------------------------------
  0 - output([t1.a], [t1.b], [t1.c], [t1.d]), filter(nil),
      access([t1.a], [t1.b], [t1.c], [t1.d]), partitions(p0)

文章题目:创新互联OceanBase教程:OceanBase访问路径概述
网页链接:http://www.shufengxianlan.com/qtweb/news45/74695.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联