zoukankan      html  css  js  c++  java
  • 8.2.1.5 Engine Condition Pushdown Optimization 引擎条件下推优化

    8.2.1.5 Engine Condition Pushdown Optimization   引擎条件下推优化
    
    这种优化改善了直接比较在一个非索引列和一个常量比较的效率。
    
    
    在这种情况下, 条件是 下推到存储引擎用于评估,这个优化智能用于NDB存储引擎
    
    
    MySQL 集群,这个优化可以消除需要发送非匹配的记录通过网络在cluster的数据节点和MySQL Server
    
    
    假设 MySQL Cluster  表是定义如下:
    
    CREATE TABLE t1 (
        a INT,
        b INT,
        KEY(a)
    ) ENGINE=NDB;
    
    条件下推可以用于查询如下,包含一个比较在非索引列和一个常量
    
    SELECT a, b FROM t1 WHERE b = 10;
    
    
    条件下推的使用可以从EXPLAIN 输出:
    
    mysql> EXPLAIN SELECT a,b FROM t1 WHERE b = 10G
    *************************** 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
    
    
    然而,条件下推不能用于下面两个查询:
    
    SELECT a,b FROM t1 WHERE a = 10;
    SELECT a,b FROM t1 WHERE b + 1 = 10;
    
    
    
    条件下推不适用于第一个查询因为一个index 存在在列a,
    
    (一个Index 访问方法会更加有效率因此会优先选择)
    
    
    条件下推不能用于第2个查询是因为 比较涉及非索引列是对的(然而,条件下推可以应用如果你降低b+1=10 为b=9)
    
    条件下推也可以被调用当一个索引列是和一个常量比较使用>或者<操作符
    
    
    mysql> EXPLAIN SELECT a, b FROM t1 WHERE a < 2G
    *************************** 1. row ***************************
               id: 1
      select_type: SIMPLE
            table: t1
             type: range
    possible_keys: a
              key: a
          key_len: 5
              ref: NULL
             rows: 2
            Extra: Using where with pushed condition
    
    
    
    其他支持的比较用于条件下推如下:
    
    1.column [NOT] LIKE pattern
    
    模式必须是一个字符串包含匹配的模式
    
    
    column IS [NOT] NULL
    
    column IN (value_list)   每个item 在value_list 是一个常量,常量值
    
    column BETWEEN constant1 AND constant2
    
    
    
    在前面列表的所有例子中,它是可以的对于条件被转换成一个或者俄夺各直接比较的格式在一个列和一个常量

  • 相关阅读:
    tableView操作数据持久化
    9.0banb以前和9.0以后版本后JSON解析
    数据持久化存储回顾
    解决Xcode会出现的问题
    iview-cli 项目、iView admin 代理与跨域问题解决方案
    将变量做为一个对象的key,push新增进一个数组
    页面加载速度优化的建议
    vue中渲染页面,动态设置颜色
    e.currentTarget与e.target
    iview中tree的事件运用
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350190.html
Copyright © 2011-2022 走看看