首页 > 数据库 >MYSQL索引相关

MYSQL索引相关

时间:2024-10-30 16:33:56浏览次数:4  
标签:term package deleted 索引 user MYSQL 相关 id

原sql

SELECT id,
       user_id,
       package_id,
       term_id,
       source,
       type,
       order_id,
       code_record_id,
       created_at,
       updated_at,
       version,
       is_deleted AS deleted
FROM tbl_purchased_package
WHERE (term_id IN (9828, 11022, 11025, 11029, 11139, 11143, 11165, 11180, 11205) AND is_deleted = 0)
LIMIT 2000,500; # 2000 表示从第 2001 行开始(偏移量)。500 表示返回 500 行数据。

新建联合索引-----遵循索引最左原则(where后面的条件是从左到右写)

新建联合索引 idx_user_term_delete_type

SELECT
<include refid="selectColumns"/>
FROM `tbl_purchased_package`
WHERE 1=1
<if test="userId != null">
    AND `user_id` = #{userId}
</if>
<if test="termId != null">
    AND `term_id` = #{termId}
</if>
<if test="isDeleted != null">
    AND `is_deleted` = #{isDeleted}
</if>
<if test="termIds != null and termIds.size > 0">
    AND `term_id` IN
    <foreach collection="termIds" index="index" item="item" open="(" separator="," close=")">
        #{item}
    </foreach>
</if>
and id >= #{minId}
order by id
limit #{limit}

执行sql 查看有没有走上索引

explain SELECT id,
       user_id,
       package_id,
       term_id,
       source,
       type,
       order_id,
       code_record_id,
       created_at,
       updated_at,
       version,
       is_deleted AS deleted
FROM tbl_purchased_package
WHERE (user_id=1189376439  and term_id IN (13566,13583,13530,11470) AND is_deleted = 0)
# LIMIT 20,5;

锴傧大佬给的所有学习资料:

https://www.cnblogs.com/kaibindirver/p/16529580.html

标签:term,package,deleted,索引,user,MYSQL,相关,id
From: https://www.cnblogs.com/chenxdnote/p/18516064

相关文章

  • MySQL双主配置
    1、配置的前置条件已知A服务器IP=192.168.0.11,B服务器IP=192.168.0.12建议使用相同版本的MySQL,若是小版本跨越一般是兼容的,如A的MySQL版本是5.7.1,B的MySQL版本是5.7.2;配置前需要保证两个数据库的数据一致,建议将A数据库同步到B数据库,以保证配置前A、B两台数据库的数据是一致的;......
  • Oracle、MySQL、ClickHouse的通用AES256加解密如何实现?
     Oracle、MySQL、ClickHouse的通用AES256加解密如何实现? 前段时间研究了加密算法aes,写了个文档,分享到博客上来。防。1  说明应XXX安全生产需求,对目标库目标表业务字段敏感信息进行加密密文存放,查询时通过解密得到明文进行数据使用,要求使用AES256。目前公司所使用主要......
  • MySQL数据库详细介绍:从入门到进阶
    MySQL是一个广泛使用的开源关系型数据库管理系统,被广泛应用于Web应用程序、企业级应用以及各种数据分析场景。本文将详细介绍MySQL数据库的基本概念、安装、配置、管理以及优化等方面的内容,帮助大家从入门到进阶了解MySQL。 一、MySQL安装可以通过以下链接下载MySQL安装包:......
  • MySQL 篇
    MySQL篇整体内容优化-如何定位慢查询如何定位慢查询问答环节优化-SQL语句执行的很慢,如何分析解决思路问答环节优化-索引概念及索引底层数据结构数据结构对比问答环节优化-聚簇索引、非聚簇索引、回表查询回表查询问答环节优化-覆盖索引、超大......
  • 001 vue.config相关
    constproxyURL=require("./src/common/proxy-config").proxyURL;constbaseURL=require('./src/common/proxy-config').baseURL;constpath=require('path');functionresolve(dir){returnpath.join(__dirname,dir);}module.ex......
  • 基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现九
    一、前言介绍:1.1项目摘要随着信息技术的迅猛发展和数字化时代的到来,传统文化与现代科技的融合已成为一种趋势。古诗词作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力。然而,在现代社会中,由于生活节奏的加快和信息获取方式的多样化,古诗词的传播和阅读面临着一......
  • 基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现十
    一、前言介绍:1.1项目摘要随着信息技术的迅猛发展和数字化时代的到来,传统文化与现代科技的融合已成为一种趋势。古诗词作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力。然而,在现代社会中,由于生活节奏的加快和信息获取方式的多样化,古诗词的传播和阅读面临着一......
  • 为什么MySQL单表不能超过2000万行? (1)
    ​最近看到一篇《我说MySQL每张表最好不要超过2000万数据,面试官让我回去等通知》的文章,非常有趣。文中提到,他朋友在面试的过程中说,自己的工作就是把用户操作信息存到MySQL里,因为数据量超大(5000万条左右),需要每天定时生成3张表,然后将数据取模分别存到这三张表里。下面是两人的对......
  • MySQL的临时表空间
    InnoDB使用会话临时表空间和全局临时表空间。会话临时表空间会话临时表空间用于存储用户创建的临时表,以及在InnoDB被配置为磁盘上内部临时表的存储引擎时由优化器创建的内部临时表。从MySQL8.0.16开始,磁盘上内部临时表使用的存储引擎是InnoDB。(以前,存储引擎由internal_tmp_d......
  • windows下Mysql8.0.12安装详解
    MySQL的安装过程还是比较繁琐,为了以后安装节约时间,将其详细安装过程总结如下:1>下载对应版本下载地址:https://dev.mysql.com/downloads/mysql/2>将下载的.zip文件解压到需要安装的目录下,在该目录下创建一个名为data的空文件夹和一个my.ini文件3>配置初始化的my.ini文件......