首页 > 数据库 >MySQL索引下推(官方翻译)

MySQL索引下推(官方翻译)

时间:2023-05-08 23:03:00浏览次数:48  
标签:下推 索引 条件 MySQL ICP WHERE

索引条件下推优化

原文链接:https://dev.mysql.com/doc/refman/8.0/en/index-condition-pushdown-optimization.html

索引条件下推 (ICP) 是针对 MySQL 使用索引从表中检索行的情况的优化。如果没有 ICP,存储引擎会遍历索引以定位基表中的行,并将它们返回给 MySQL 服务器,MySQL 服务器会评估这些WHERE行的条件。启用 ICP 后,如果 WHERE仅使用索引中的列可以评估部分条件,则 MySQL 服务器会推送这部分条件WHERE条件下降到存储引擎。然后,存储引擎使用索引条目评估推送的索引条件,只有在满足条件时才会从表中读取行。ICP可以减少存储引擎必须访问基表的次数和MySQL服务器必须访问存储引擎的次数。

Index Condition Pushdown 优化的适用性取决于以下条件:

  • 当需要访问完整的表行时, ICP 用于 rangerefeq_ref和 访问方法。ref_or_null

  • ICP 可用于InnoDBMyISAM表,包括分区InnoDBMyISAM表。

  • 对于InnoDB表,ICP 仅用于二级索引。ICP 的目标是减少整行读取的次数,从而减少 I/O 操作。对于 InnoDB聚簇索引,完整的记录已经读入缓冲区InnoDB 。在这种情况下使用 ICP 不会减少 I/O。

  • 在虚拟生成列上创建的二级索引不支持 ICP。InnoDB 支持虚拟生成列的二级索引。

  • 不能下推引用子查询的条件。

  • 不能下推引用存储函数的条件。存储引擎不能调用存储函数。

  • 触发条件不能下推。(有关触发条件的信息,请参阅 第 8.2.2.3 节,“使用 EXISTS 策略优化子查询”。)

  • MySQL 8.0.30 及更高版本

    标签:下推,索引,条件,MySQL,ICP,WHERE
    From: https://www.cnblogs.com/JaxYoun/p/17383428.html

相关文章

  • Mac安装MySQL5.7开发环境的详细步骤
    1.进入官网下载MySQL5.7的安装包。下载地址:https://www.mysql.com/downloads/      跟着上面图示下载即可,我这里选择的是5.7.31的版本,根据个人喜好选择版本,但是注意有的版本是没有mac版本的,换个版本就行了。2.安装包下载完成后双击pkg文件进行安装,无脑点下一步......
  • Golang MySQL 操作
    1.  创建go_db目录      mkdirgo_db2. root@VirtualBox:/mnt/share/goframe/go_db#gomodinitgo_dbgo:creatingnewgo.mod:modulego_dbroot@VirtualBox:/mnt/share/goframe/go_db#goget-ugithub.com/go-sql-driver/mysqlgo:addedgithub.com/go-......
  • Mysql面试题
    1.Mysql基础1、from子句组装来自不同数据源的数据;2、where子句基于指定的条件对记录行进行筛选;3、groupby子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;6、计算所有的表达式;7、select的字段;8、使用orderby对结果集进行排序。SQL语言不同......
  • MySQL主从
    MySQL主从一主从复制介绍1.1什么是主从复制将主服务器的binlog日志复制到从服务器上执行一遍,达到主从数据的一致状态,称之为主从复制。一句话表示就是,主数据库做什么,从数据库就跟着做什么。1.2为何要做主从(1)为实现服务器负载均衡/读写分离做铺垫,提升访问速度#1、什么......
  • MySQL面试手册
    面试手册1、你接触过哪几种数据库软件,各自的优缺点是什么?2、MySQLbinlog的几种日志格式有什么区别?3、MySQL的存储引擎有哪几种?4、MySQL主从复制原理是什么?5、MySQL中myisam和innodb的区别?6、字段类型varchar和char的区别是什么?varchar(50)中50代表什么?7、关系型数据库和非......
  • MySQL锁机制
    一数据库的锁机制什么是锁?为何要加入锁机制?锁是计算机协调多个进程或线程并发访问某一资源的机制,那为何要加入锁机制呢?因为在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供需要用户共享的资源。当并发事务同时访问一个共享的资源时,有可能导致数据不......
  • MySQL日志管理
    MySQL日志管理一日志分类日志种类作用错误日志记录MySQL服务器启动、关闭及运行错误等信息事务日志1、redolog重做日志2、undolog回滚日志查询日志记录所有的sql慢查询日志记录执行时间超过指定时间的操作,如果是全表查询,即便没有超时也会被记录下......
  • MySQL基本管理
    数据库基本管理一MySQL启动关闭流程mysql是一个典型的C/S服务结构1.mysql自带的客户端程序(/service/mysql/bin) mysql mysqladmin mysqldump2.mysqld一个二进制程序,后台的守护进程 单进程 多线程1.1启动数据库1、/etc/init.d/mysqldstart--->mysql.server--->......
  • 索引原理与慢查询优化
    索引原理与慢查询优化一我们要搞明白的问题让我们带着以下问题展开对索引的探索1、为何索引叫key2、索引是如何加速查询的,它的原理是啥?索引模型/结构从二叉树-》平衡二叉树-》b树最后到b+树,每种树到底有什么问题最终演变成到了b+树3、为何b+树不仅能够加速等值查询,还能加速......
  • debain11安装mysql报错一例
    W:GPGerror:http://repo.mysql.com/apt/debianbullseyeInRelease:Thefollowingsignaturescouldn'tbeverifiedbecausethepublickeyisnotavailable:NO_PUBKEY467B942D3A79BD29E:Therepository'http://repo.mysql.com/apt/debianbullseyeInRe......