mysql默认开启索引下推,减少回表的数据

目的:在回表前就进行where多个条件的判断,从而回表到服务器层的数据量足够小

索引下推的工作原理

在没有索引下推优化的情况下,当 MySQL 使用索引进行查询时,它会从索引中获取符合条件的索引条目,然后回表(访问实际数据行)并将结果返回给 MySQL 服务器层进行进一步的过滤。这种情况下,即使某些索引条目不符合查询的所有条件,MySQL 也需要回表读取完整的数据行。

引入索引下推优化后,MySQL 可以在存储引擎层(如 InnoDB)就执行部分查询条件的过滤。这样可以显著减少需要回表的次数,从而提高查询性能。

使用索引下推的示例

假设有一个表 employees,其定义如下:

CREATE TABLE employees (
    employee_id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    department_id INT,
    hire_date DATE,
    INDEX idx_department_hire_date (department_id, hire_date)
);

我们有一个查询,用于查找特定部门中某个日期之后入职的员工:

SELECT * FROM employees WHERE department_id = 5 AND hire_date > '2020-01-01';

没有索引下推优化
MySQL 使用 idx_department_hire_date 索引查找所有 department_id = 5 的索引条目。
对每个找到的索引条目,MySQL 回表获取实际的数据行。
在 MySQL 服务器层过滤 hire_date > ‘2020-01-01’ 的条件。
启用索引下推优化
MySQL 使用 idx_department_hire_date 索引查找 department_id = 5 的索引条目。
在存储引擎层应用 hire_date > ‘2020-01-01’ 条件,过滤掉不符合条件的索引条目。
只对符合条件的索引条目回表,获取实际的数据行。

mysql默认开启索引下推的

相关推荐

  1. mysql默认开启索引减少数据

    2024-07-11 07:12:03       19 阅读
  2. MySQL索引

    2024-07-11 07:12:03       33 阅读
  3. Mysql——索引

    2024-07-11 07:12:03       32 阅读
  4. MySql中什么是? 如何减少次数

    2024-07-11 07:12:03       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 07:12:03       53 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 07:12:03       55 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 07:12:03       46 阅读
  4. Python语言-面向对象

    2024-07-11 07:12:03       56 阅读

热门阅读

  1. Spring Boot项目Jar包加密详解

    2024-07-11 07:12:03       18 阅读
  2. 云端足迹:在iCloud中同步您的地图标记和路线

    2024-07-11 07:12:03       20 阅读
  3. Spring Boot(八十):Tesseract实现图片文字自动识别

    2024-07-11 07:12:03       19 阅读
  4. 5-2.模型层

    2024-07-11 07:12:03       16 阅读
  5. 一键安装ros及出现问题的解决方案

    2024-07-11 07:12:03       22 阅读
  6. [PaddlePaddle飞桨] PaddleOCR图像小模型部署

    2024-07-11 07:12:03       20 阅读
  7. 一起来了解深度学习中的“梯度”

    2024-07-11 07:12:03       20 阅读
  8. linux之内存泄漏分析

    2024-07-11 07:12:03       17 阅读
  9. Kotlin Class

    2024-07-11 07:12:03       19 阅读
  10. uniapp vue3微信小程序如何获取dom元素

    2024-07-11 07:12:03       21 阅读
  11. ROI 接口便捷修改

    2024-07-11 07:12:03       15 阅读
  12. rknn部署rk3588

    2024-07-11 07:12:03       19 阅读