8.2.1.5 Engine Condition Pushdown Optimization 引擎优化条件推入

来源:互联网 发布:浙江省网络作家 编辑:程序博客网 时间:2024/06/15 03:00

8.2.1.5 Engine Condition Pushdown Optimization 引擎优化条件推入

这种优化提高了直接比较的效率在一个非索引列和一个常数,在这种情况下, 条件是被推入到存储引擎进行评估,

这种优化只能被NDB 存储引擎使用。

Mysql Cluster, 优化器能消除发送不匹配记录的需要通过网络在cluster的数据节点和MySQL Server 执行查询,

假设MySQL Cluster 表定义如下:

CREATE TABLE t1 (
a INT,
b INT,
KEY(a)
) ENGINE=NDB;

条件推入可以用于查询,如上图所示,其中包括非索引列和一个常数之间的比较
SELECT a, b FROM t1 WHERE b = 10;

The use of condition pushdown can be seen in the output of EXPLAIN:

mysql> EXPLAIN SELECT a,b FROM t1 WHERE b = 10\G
***************** 1. row *****************
id: 1
select_type: SIMPLE
table: t1
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 10
Extra: Using where with pushed condition
However, condition pushdown cannot be used with either of these two queries:

然而,条件推入 不能用于在下面2个查询:

SELECT a,b FROM t1 WHERE a = 10;
SELECT a,b FROM t1 WHERE b + 1 = 10;

条件推入不适用于第一个查询,因为一个索引存在列a.(一个索引的访问方法会变得更有效,因此会选择条件推入)

0 0
原创粉丝点击