Skip to main content
记一次MySQL查询深入优化--索引类型

前言

书接上回,记一次MySQL查询深入优化--类型不匹配,我们通过修改查询条件里的条件右侧的类型是索引生效了,但是我们知道,优化效果其实不是很明显,:han。

环境及数据准备

  • MySQL 版本:8.0.25
  • 服务器:2c2G (负载很低)

表结构

CREATE TABLE `a` (
  `id` bigint NOT NULL AUTO_INCREMENT ,
  -- ...
  -- 业务数据
  -- ...
  `publish_time` varchar(19) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
  PRIMARY KEY (`id`),
  KEY `idx_update_time` (`update_time`),
  KEY `idx_publish_time` (`publish_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

MarshioAbout 2 minMySQL查询深入优化源码阅读MySQL索引优化
MySQL8.0.x 源码阅读问题汇总

CMake Error

在解决问题前,我们需要先了解下什么是cmake文件.

CMake is the de-facto standard for building C++ code, with over 2 million downloads a month. It’s a powerful, comprehensive solution for managing the software build process. Get everything you need to successfully leverage CMake by visiting our resources section.

简译即:cmake是构建c++代码的标准,我感觉可以理解为Java中的Maven(某种程度上)。


MarshioLess than 1 minuteMySQL源码阅读MySQLC++
记一次MySQL查询深入优化--类型不匹配

前言

某一天,产品经理找到我说,我们收到上级反馈,说这个页面的响应有些让人抓狂(修饰后的说法doge),我打开F12查看了响应时间,enmmm,竟然需要耗时12s+。

话不多说,准备动手。

环境及数据准备

由于这里涉及到了业务数据,所以我在这里只能模拟数据进行演示。

MySQL版本:8.0.25

表结构

CREATE TABLE `a` (
  `id` bigint NOT NULL AUTO_INCREMENT ,
  -- ...
  -- 业务数据
  -- ...
  `publish_time` varchar(19) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
  PRIMARY KEY (`id`),
  KEY `idx_update_time` (`update_time`),
  KEY `idx_publish_time` (`publish_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

MarshioAbout 4 minMySQL查询深入优化源码阅读MySQL索引优化