拼多多二面问题: 什么是索引下推

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 拼多多二面问题: 什么是索引下推

面试问题(pdd二面)


(A B C) 联合索引,D没有索引

select * from table where A=? and C=?

select * from table where A=? and D=?

哪个可能更快一点


答案是第一条。因为索引下推(ICP), 第一条要回表的数据变少了

这个是MySQL 5.6新增的特性


索引下推是什么?(来自chatgpt的回答)


索引下推(Index Pushdown)是指在数据库查询过程中,将部分查询操作下推到存储引擎层执行,以减少数据传输和处理的工作量,提高查询效率。

传统的查询过程中,数据库管理系统(DBMS)接收到查询请求后,会先从磁盘读取数据到内存,然后对数据进行处理和过滤以满足查询条件。这意味着大量的数据需要从磁盘读取到内存,造成了磁盘IO和网络传输开销,可能导致查询性能下降。

索引下推通过在存储引擎层执行部分查询操作,可以减少数据传输和处理的工作量。具体而言,当查询条件涉及到索引列时,索引下推可以将过滤条件下推到存储引擎层执行,只将满足条件的数据返回给DBMS,而不是将所有数据都传输到DBMS进行过滤。这样可以减少磁盘IO和网络传输开销,提高查询效率。

索引下推的具体实现方式会因不同的数据库管理系统而有所不同,但基本思想是一致的:尽早在存储引擎层对数据进行过滤,减少不必要的数据传输和处理,提高查询性能。


相关视频讲解


【IT老齐252】MySQL关键特性索引下推ICP是做什么的?

4. mysql常见面试题之 索引下推(ICP)-联合索引妙用

2023Java面试题300集:阿里MySQL面试题之什么是索引下推?

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
29天前
|
存储 关系型数据库 MySQL
贝壳面试:什么是回表?什么是索引下推?
在40岁老架构师尼恩的读者交流群中,近期有成员获得了得物、阿里、滴滴等一线互联网企业的面试机会,遇到了诸如“MySQL索引下推”、“回表查询”等重要面试题。由于缺乏准备,部分成员未能通过面试。为此,尼恩系统地整理了相关知识点,帮助大家提升技术实力,顺利通过面试。具体内容包括MySQL的架构、回表查询的工作原理及其性能问题、索引下推的底层原理和优势等。此外,尼恩还提供了优化建议和实战案例,帮助大家更好地理解和应用这些技术。尼恩的技术资料《尼恩Java面试宝典PDF》也收录了这些内容,供后续参考。
贝壳面试:什么是回表?什么是索引下推?
|
3天前
|
SQL 关系型数据库 MySQL
阿里面试:1000万级大表, 如何 加索引?
45岁老架构师尼恩在其读者交流群中分享了如何在生产环境中给大表加索引的方法。文章详细介绍了两种索引构建方式:在线模式(Online DDL)和离线模式(Offline DDL),并深入探讨了 MySQL 5.6.7 之前的“影子策略”和 pt-online-schema-change 方案,以及 MySQL 5.6.7 之后的内部 Online DDL 特性。通过这些方法,可以有效地减少 DDL 操作对业务的影响,确保数据的一致性和完整性。尼恩还提供了大量面试题和解决方案,帮助读者在面试中充分展示技术实力。
|
5月前
|
存储 关系型数据库 MySQL
MySQL索引18连问,谁能顶住
MySQL索引18问概览: 1. 索引是提升查询速度的数据结构,如书的目录。 2. 索引类型包括B+tree、Hash、Full-text、R-Tree等,B+tree擅长范围查询,Hash擅长等值比较。 3. 主键索引唯一且不可为空,每表只能一个;唯一索引允许唯一值,可为空。 4. 聚簇索引数据与索引顺序一致,非聚簇索引存储指针。
349 0
MySQL索引18连问,谁能顶住
|
6月前
|
存储 SQL 关系型数据库
索引和事务究竟是何方神圣?那可是面试中的常客!
索引和事务究竟是何方神圣?那可是面试中的常客!
77 1
索引和事务究竟是何方神圣?那可是面试中的常客!
|
6月前
|
关系型数据库 MySQL 定位技术
解谜MySQL索引:优化查询速度的不二法门
解谜MySQL索引:优化查询速度的不二法门
62 0
|
存储 缓存 自然语言处理
阿里二面:MySQL索引是怎么支撑千万级表的快速查找?
在 MySQL 官方提到,改善操作性能的最佳方法 SELECT 在查询中测试的一个或多个列上创建索引。索引条目的作用类似于指向表行的指针,从而使查询可以快速确定哪些行与WHERE子句中的条件匹配,并检索这些行的其他列值。所有MySQL数据类型都可以建立索引。
271 0
|
存储 SQL 缓存
|
存储 SQL JavaScript
MySQL索引15连问,抗住!
MySQL索引15连问,抗住!
|
SQL 存储 关系型数据库
你不得不知的MYSQL优化——索引下推
你不得不知的MYSQL优化——索引下推
233 0
你不得不知的MYSQL优化——索引下推