暂无图片
从 Null 到空值:从 MogDB 的 Bitmap Index Scan 执行计划谈起
最近更新:2022-08-27 10:15:01

适用范围

MogDB 通用版本

问题概述

在观察MogDB SQL 执行计划时,发现在Btree索引上,使用了 Bitmap Index Scan 的执行方式。

问题分析

MogDB 的空值处理和 Oracle 不同。在Oracle数据库中 NULL 和 '' 是等价的。但是在 MogDB中,两者不等价,NULL 是未知,但是 '' 是空字符。

以下是 Oracle 数据库的测试:

SQL> CREATE TABLE oracle (id number, name varchar2(10));

Table created.

SQL> INSERT INTO oracle VALUES(1,'eygle');

1 row created.

SQL> INSERT INTO oracle VALUES(2,NULL);

1 row created.

SQL> INSERT INTO oracle VALUES(3,'');

1 row created.

SQL> select * from oracle where name is null;

	ID NAME
---------- ----------
	 2
	 3

SQL> select * from oracle where name is not null;

	ID NAME
---------- ----------
	 1 eygle

SQL> select * from oracle where name='';
......