当前位置: 首页 > news >正文

SQL优化 | OceanBase是否遵循最左匹配原则?(三)

1、问题背景

在MySQL数据库中,如果不满足最左匹配原则,索引会失效。那么在OceanBase数据库中:

  • 是否有同样的问题?
  • 如果不满足最左匹配原则,如何走上索引?

创建测试表和联合索引:

-- 创建测试表
CREATE TABLE tt (c1 INT,c2 INT,c3 INT
);
-- 添加联合索引
CREATE INDEX idx_tt ON tt(c2,c3);

2、模拟不同查询场景并查看执行计划

测试版本:oceanbase 4.2.1.3

2.1 满足最左匹配原则的查询

// 场景1 全字段匹配,符合索引前缀原则,可以使用索引
mysql> EXPLAIN BASIC SELECT * FROM tt  where  c2=1  and  c3=2;
+--------------------------------------------------------------------------+
| Query Plan                                                               |
+--------------------------------------------------------------------------+
| ===========================================================
|
| |ID|OPERATOR        |NAME      |
| --------------------------------
| |0 |TABLE RANGE SCAN|tt(idx_tt)|
| ===========================================================
|
| Outputs & filters:
| -------------------------------------
|   0 - output([tt.c1], [tt.c2], [tt.c3]), filter(nil), rowset=16
|       access([tt.__pk_increment], [tt.c2], [tt.c3], [tt.c1]), partitions(p0)
|       is_index_back=true, is_global_index=false,
|       range_key([tt.c2], [tt.c3], [tt.__pk_increment]), range(1,2,MIN ; 1,2,MAX),
|       range_cond([tt.c2 = 1], [tt.c3 = 2])
+--------------------------------------------------------------------------+
12 rows in set (0.00 sec)
// 场景2 过滤条件是c2,符合索引前缀原则,可以使用索引
mysql> EXPLAIN BASIC SELECT 

http://www.mrgr.cn/news/96282.html

相关文章:

  • [异步监听事件、异步绑定属性]通过vue的this.$refs.组件.$props和.$on实现异步绑定组件属性和事件监听
  • Kubernetes》k8s》Containerd 、ctr 、cri、crictl
  • Redis:Hash 类型 内部实现、命令及应用场景
  • Redis:List 类型 内部实现、命令及应用场景
  • Java中的异常1
  • Go服务开发高手课(极客讲堂)
  • 一文详解k8s体系架构知识
  • 深入理解 dispatchEvent:前端事件触发的艺术
  • Audacity Nyquist插件开发:插件标头详解
  • MySQL基础语法DDLDML
  • 【Linux】进程的详讲(上)
  • 为AI聊天工具添加一个知识系统 之154:理论框架、工程方案及两者的结合架构
  • Qwen2.5-VL实现本地AWQ量化
  • 一些需要学习的C++库:CGAL和Eysshot
  • Spring学习笔记05——Spring Boot的文件结构2(POJO类)
  • C语言学习笔记(抱佛脚版)
  • StarRocks 中 CURRENT_TIMESTAMP 和 CURRENT_TIME 分区过滤问题
  • 基于Spring AI开发本地Jenkins MCP Server服务
  • springboot 实现base64格式wav转码并保存
  • python下载m3u8格式视频