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

手机可播放的网站怎么找平台推广

手机可播放的网站,怎么找平台推广,专业网站搭建报价,网页制作用什么软件什么是索引下推 索引下推(Index Condition Pushdown,简称ICP),是MySQL5.6版本的新特性,它能减少回表查询次数,提高查询效率。 索引下推优化的原理 我们先简单了解一下MySQL大概的架构: MySQL服务层负责SQL语法解析、…

什么是索引下推

索引下推(Index Condition Pushdown,简称ICP),是MySQL5.6版本的新特性,它能减少回表查询次数,提高查询效率。

索引下推优化的原理

我们先简单了解一下MySQL大概的架构:

MySQL服务层负责SQL语法解析、生成执行计划等,并调用存储引擎层去执行数据的存储和检索。

索引下推下推其实就是指将部分上层(服务层)负责的事情,交给了下层(引擎层)去处理。

我们来具体看一下,在没有使用ICP的情况下,MySQL的查询:

  • 存储引擎读取索引记录;
  • 根据索引中的主键值,定位并读取完整的行记录;
  • 存储引擎把记录交给Server层去检测该记录是否满足WHERE条件。

使用ICP的情况下,查询过程:

  • 存储引擎读取索引记录(不是完整的行记录);
  • 判断WHERE条件部分能否用索引中的列来做检查,条件不满足,则处理下一行索引记录;
  • 条件满足,使用索引中的主键去定位并读取完整的行记录(就是所谓的回表);
  • 存储引擎把记录交给Server层,Server层检测该记录是否满足WHERE条件的其余部分。

索引下推的具体实践

理论比较抽象,我们来上一个实践。

使用一张用户表tuser,表里创建联合索引(name, age)。

如果现在有一个需求:检索出表中名字第一个字是张,而且年龄是10岁的所有用户。那么,SQL语句是这么写的:

select * from tuser where name like '张%' and age=10;

假如你了解索引最左匹配原则,那么就知道这个语句在搜索索引树的时候,只能用 ,找到的第一个满足条件的记录id为1。

那接下来的步骤是什么呢?

没有使用ICP

在MySQL 5.6之前,存储引擎根据通过联合索引找到name like '张%' 的主键id(1、4),逐一进行回表扫描,去聚簇索引找到完整的行记录,server层再对数据根据age=10进行筛选

我们看一下示意图:

可以看到需要回表两次,把我们联合索引的另一个字段age浪费了。

使用ICP

而MySQL 5.6 以后, 存储引擎根据(name,age)联合索引,找到name like '张%',由于联合索引中包含age列,所以存储引擎直接再联合索引里按照age=10过滤。按照过滤后的数据再一一进行回表扫描。

我们看一下示意图:

可以看到只回表了一次。

除此之外我们还可以看一下执行计划,看到Extra一列里 Using index condition,这就是用到了索引下推。

+----+-------------+-------+------------+-------+---------------+----------+---------+------+------+----------+-----------------------+
| id | select_type | table | partitions | type  | possible_keys | key      | key_len | ref  | rows | filtered | Extra                 |
+----+-------------+-------+------------+-------+---------------+----------+---------+------+------+----------+-----------------------+
|  1 | SIMPLE      | tuser | NULL       | range | na_index      | na_index | 102     | NULL |    2 |    25.00 | Using index condition |
+----+-------------+-------+------------+-------+---------------+----------+---------+------+------+----------+-----------------------+

索引下推使用条件

  • 只能用于rangerefeq_refref_or_null访问方法;
  • 只能用于InnoDBMyISAM存储引擎及其分区表;
  • InnoDB存储引擎来说,索引下推只适用于二级索引(也叫辅助索引);

索引下推的目的是为了减少回表次数,也就是要减少IO操作。对于InnoDB聚簇索引来说,数据和索引是在一起的,不存在回表这一说。

  • 引用了子查询的条件不能下推;
  • 引用了存储函数的条件不能下推,因为存储引擎无法调用存储函数。

相关系统参数

索引条件下推默认是开启的,可以使用系统参数optimizer_switch来控制器是否开启。

查看默认状态:

 

切换状态:

set optimizer_switch="index_condition_pushdown=off";
set optimizer_switch="index_condition_pushdown=on";

http://www.yayakq.cn/news/962009/

相关文章:

  • 上上佳食品 网站建设盐城城南建设局一局网站
  • wordpress发布时间电商网站seo优化
  • 国家开发银行生源地助学贷款网站网站建设功能规划
  • 旅游公司电子商务网站建设策划书中装建设装饰有限公司
  • 人防网站建设app制作哪里正规
  • 衡水做网站哪儿好多个域名多国语言网站seo优化
  • 网站建设怎么做账会计vs2010如何做网站
  • 网站推广站点建设与策划手机卡盟网站建设
  • 关键词查询网站的工具一家专做二手手机的网站叫什么手机
  • 网站开发记科目公司网站建设费用估计
  • 深圳网站建设 壹起航搬瓦工建设wordpress
  • 做类似淘宝网站多少钱网站设计内容包括
  • wordpress克隆他人的网站成都百度seo优化公司
  • 深圳 网站托管小程序快速搭建平台
  • 邯郸做网站网络公司网站建设中怎么写
  • 深圳网站建设方维网络群艺馆网站建设方案
  • 上海专业网站建设方案seo推广用什么做网站好
  • 怎么在网上推广产品外贸网站 seo
  • 水处理网站模板网站升级 云南省建设注册考试中心
  • html5响应式企业网站o2o网站建设行情
  • 沧州建网站建站技巧
  • icp备案系统网站wordpress 固定链接结构出错
  • 网站有很多304状态码163企业邮箱官网入口
  • 网站开发融资大连网站推广爱得科技
  • 自媒体发布软件app快速网站优化技巧
  • 备案网站域名和主机关系网站每天更新多少文章
  • 外包网站建设价格可以引流推广的app
  • 全国商务网站大全dedecms 关闭网站
  • 茶叶网站建设模板做SEO用dede还是wordpress
  • 自己做的网站怎么连接计算机站长工具seo查询5g5g