Mysql 索引 以及 SQL 优化 (自用笔记)

news2024/11/16 3:35:05

(笔记来源
https://www.bilibili.com/video/BV1Kr4y1i7ru?p=88&vd_source=3cf72bb393b8cc11b96c6d4bfbcbd890)

3.索引

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.1索引的语法

在这里插入图片描述

3.1索引的性能分析

3.1.1查看SQL执行频率

增删改为主的SQL的一般不需要优化
查询居多的SQL则需要优化
在这里插入图片描述

3.1.2慢查询的日志

记录了超过x秒的查询语句,x是自己配置的
在这里插入图片描述
在这里插入图片描述

3.1.3profile详情

如何定位其他的需要优化的语句
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1.4 explain执行计划(相对来说比较常用和重点)

在这里插入图片描述
在这里插入图片描述

字段说明
在这里插入图片描述
在这里插入图片描述

3.2 索引的使用原则

(视频会更直观 https://www.bilibili.com/video/BV1Kr4y1i7ru?p=80&vd_source=3cf72bb393b8cc11b96c6d4bfbcbd890)
在这里插入图片描述
上面的原则是对联合索引起作用的(多个列组合成的索引)

在这里插入图片描述
上面最好用(>= 或者<=),带上= 具体看视频

3.3索引失效的情况

对索引字段进行运算会造成索引失效
在这里插入图片描述
索引字段类型转换 会对索引失效
在这里插入图片描述
模糊查询,如果是尾部模糊查询,索引不会失效,头部模糊查询,索引失效
在这里插入图片描述
or连接的条件
在这里插入图片描述
数据分布的影响
比如建立了索引,但是却没有走看explain语句,没有走索引. 如下图的sql,这张表几乎都符合这个条件,那还不如直接扫描全表,比不走索引更快.
同理,is null 和 is not null 也是一样的道理,is null 和 is not null 哪个条件匹配的结果 几乎等于扫描全表,那么就是直接扫描全表不走索引更快.
(说的不是很清楚 可以看视频https://www.bilibili.com/video/BV1Kr4y1i7ru?p=82&vd_source=3cf72bb393b8cc11b96c6d4bfbcbd890)
在这里插入图片描述

3.4SQL提示

一个字段多个索引时候,可以用一下语句决定用哪一个索引,不指定,mysql会自行决定用哪一个
在这里插入图片描述

3.5 覆盖索引

在这里插入图片描述
在这里插入图片描述
这个图第二条语句,name不是二级索引,所以需要回表查询.

3.6 前缀索引

(视频https://www.bilibili.com/video/BV1Kr4y1i7ru?p=85&vd_source=3cf72bb393b8cc11b96c6d4bfbcbd890)
在这里插入图片描述

3.7 单列索引和联合索引的选择

在这里插入图片描述

3.8 索引设计的原则

在这里插入图片描述

3.9索引的总结

在这里插入图片描述
在这里插入图片描述

4.SQL优化

insert的优化

个人工作中,第二种,在开发中,用mybatis时候,确实比较常用. 手动提交事务!
在这里插入图片描述

load指令

在这里插入图片描述

主键优化

在这里插入图片描述
主键乱序插入,有可能产生也分页现象,会增加插入耗时
删除时候,有可能产生页合并
(https://www.bilibili.com/video/BV1Kr4y1i7ru?p=90&spm_id_from=pageDriver&vd_source=3cf72bb393b8cc11b96c6d4bfbcbd890)

主键设计的优化
在这里插入图片描述

order by 优化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

group by 优化

在这里插入图片描述
在group by操作时候,可以通过建立对应的group by字段索引,提高效率
索引的使用,也是满足最左前缀法则

limit优化

在这里插入图片描述
将 select * from tb_sku limit 2000000,10优化成上面,确实更省时间

count优化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

update 语句的优化

在这里插入图片描述
更新的条件是索引,那么就是行锁,如果不是索引,会升级为表锁.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/141123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝牙透传模块芯片的BLE和SPP有什么区别?如何理解

一、什么是蓝牙透传芯片 蓝牙透传芯片的BLE和SPP有什么区别&#xff1f;如何理解呢&#xff1f; 首先要明确几个关键词&#xff0c;蓝牙芯片&#xff0c;蓝牙透传&#xff0c;蓝牙BLE&#xff0c;以及蓝牙SPP 第一&#xff1a;蓝牙芯片的概念可以参见一下网上的说明&#xff…

内网渗透测试——内网渗透测试基础

1.内网基础知识 1.工作组 再局域网中将不同的计算机按照功能&#xff08;或部门&#xff09;分别列入不同的工作组。 加入创建工作组&#xff1a;点击桌面上的计算机图标&#xff0c;再弹出的快捷键菜单中选择属性&#xff0c;然后几次点击更改设置和更改按钮。再计算机名输…

计算机组成原理题目汇总

文章目录 计算机系统概述数据的表示和运算存储器系统指令系统中央处理器总线输入输出系统计算机系统概述 MIP CPI Tc Fc相关的各种运算。 计算机系统硬件组成有:运算器、控制器、存储器、输入设备、输出设备。 冯诺伊曼机的特点有: 包含…五个部分;以二进制代码表示程序和…

异步通信技术AJAX | AJAX实现搜索联想和自动补全

目录 一&#xff1a;AJAX实现搜索联想和自动补全 二&#xff1a;HTTP状态信息 一&#xff1a;AJAX实现搜索联想和自动补全 &#xff08;1&#xff09;实现的原理 &#xff08;1&#xff09;什么是搜索联想&#xff1f;自动补全&#xff1f; ①百度是一个很典型的代表。在百度…

易基因|DNA甲基化揭示肌痛性脑脊髓炎/慢性疲劳综合征在复发和恢复周期中的动态表观变化

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。2022年10月06日&#xff0c;《Int J Mol Sci》杂志发表题为“Dynamic Epigenetic Changes during a Relapse and Recovery Cycle in Myalgic Encephalomyelitis/Chronic Fatigue Syndrome”…

大数据挖掘课程案例资源介绍

大数据挖掘课程案例资源分为【基础】版&#xff0c;【进阶】版&#xff0c;不同阶段的课程难易程度不一样&#xff0c;对学生的基础知识掌握要求也不一样。 【基础】Python编程基础 通过学习本课程可掌握Python 开发环境的搭建、Python 基础入门、函数、面向对象编程、…

初识PHP原生类

目录 DirectoryIterator SplFileInfo DirectoryIterator 适用&#xff1a;PHP 5, PHP 7, PHP 8 __toString()方法可以获取字符串形式的文件名 <?php highlight_file(__file__); $dir $_GET[dir]; $a new DirectoryIterator($dir); foreach($a as $f){echo($f->__toS…

【Linux操作系统】编辑器天花板vim与一键配置vim

文章目录一vim简介二.命令模式1.光标定位操作2.光标移动操作3.文本复制&#xff0c;粘贴&#xff0c;删除&#xff0c;剪切操作三.插入模式四.替换模式五.底行模式1.分屏操作2.不退出vim执行Linux指令3.全局查找.替换4.退出vim六.vim配置1.各配各的2.配置方案七.添加root信任用…

高校房产管理系统平台架构分析

数图互通高校房产综合管理信息系统是基于公司自主研发的FMCenterV5.0平台&#xff0c;是针对中国高校房产的管理特点和管理要求&#xff0c;研发的一套标准产品&#xff1b;通过在中国100多所高校的成功实施和迭代&#xff0c;形成了一套成熟、完善、全生命周期的房屋资源管理解…

网络规划.弱电CAD设计规范

机柜是机房布线中必不可少的设备&#xff0c;关于机柜的品牌与安装细节&#xff0c;尤其是关于机柜内部的设备布置。一个 全面的数据中心机房设计 一般包括&#xff1a;综合布线、抗静电地板铺设、棚顶墙体装修、隔断装修、UPS、专用恒温恒湿空调、机房环境监控系统、新风系统、…

VC调用AutoCAD自动化的两种方法(包装类、接口)使用详解

----哆啦刘小洋 原创&#xff0c;转载需说明出处 2022-12-29 VC调用AutoCAD自动化1 简介2 AutoCAD的Automation类型库说明文件3 包装类方式3.1 VC63.2 VC20224 接口调用方式5 两种方式对比5.1 使用便捷性5.2 兼容性5.3 结论6 后记1 简介 在工程领域&#xff0c;使用AutoCAD时经…

(小程序)后台交互--个人中心

目录 一、微信登录流程简介 二、微信用户获取用户昵称头像和昵称 ① wx.getUserProfile ——> 获取头像 三、微信登录流程代码详解 1.bindgetuserinfo——>把小程序端搭建起来 ① oa-mini 2.登录-小程序 ① wx.checkSession ② wx.login ③ wx.request 3.后台…

Python - 数据容器list(列表)

目录列表的定义列表的下标&#xff08;索引&#xff09;列表的常用操作查找某元素的下标index修改特定位置&#xff08;索引&#xff09;的元素值插入元素insert追加元素append追加元素方式extend删除元素pop与del删除某元素在列表中的第一个匹配项remove清空列表内容clear()统…

【JavaScript】获取和操作 DOM 节点

文章目录【JavaScript】获取和操作 DOM 节点一. DOM节点分类二. 获取节点(1) 获取元素节点1. 非常规元素节点2. 常规元素节点(2) 获取节点的方式三. 操作节点(1) 创建节点(2) 插入节点(3) 删除节点(4) 替换节点(5) 克隆节点(6) 节点属性四. 案例&#xff1a;微博发布【JavaScri…

使用云开发的垃圾分类、垃圾识别、答题的微信小程序源码+部署教程,文字识别垃圾类型、语音识别垃圾类型、图片识别类型、垃圾类别答题

使用云开发的垃圾分类、垃圾识别、答题的微信小程序 完整代码下载地址&#xff1a;使用云开发的垃圾分类、垃圾识别、答题的微信小程序 前言 项目介绍 小程序使用了云开发&#xff0c;包含文字识别垃圾类型、语音识别垃圾类型、图片识别类型、垃圾类别答题、腾讯机器人对话…

AndroidStudio启动app时闪退问题解决过程

问题描述: Android app在启动时闪退的问题有很多种,大部分可能集中在代码有问题上,譬如StartActivity的时候启动不了。 看提示里一般是有错误出现的,这个很好解决,只要找到对应的错误就可以了。 那么,还有一类问题,就是我这里出现的,启动成功,没有任何错误,查看lo…

Odoo 16 企业版手册 - 库存管理之库存调拨

库存调拨 拥有多个仓库的公司需要管理产品从一个地点转移到另一个地点。在某些情况下&#xff0c;公司可能在不同地点设有不同的分支机构&#xff0c;这需要付出巨大努力才能成功管理产品调拨。公司通常通过分配主要仓库和子仓库进行产品分销来管理这种情况。Odoo中的调拨功能支…

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

一、背景 前后端分离已经成为互联网项目开发标准&#xff0c;它会为以后的大型分布式架构打下基础。SpringBoot使编码配置部署都变得简单&#xff0c;越来越多的互联网公司已经选择SpringBoot作为微服务的入门级微框架。 Mybatis-Plus是一个 Mybatis 的增强工具&#xff0c;有…

房产管理系统系统与数据中心对接要遵循的标准和规范

数图互通高校房产综合管理系统平台是基于公司自主研发的FMCenterV5.0平台&#xff0c;是针对中国高校房产的管理特点和管理要求&#xff0c;研发的一套标准产品&#xff1b;通过在中国100多所高校的成功实施和迭代&#xff0c;形成了一套成熟、完善、全生命周期的房屋资源管理解…

票务公司网上订票系统

课程设计题目七&#xff1a;票务公司网上订票系统https://download.csdn.net/download/qq_45037155/87364367 点击此链接免费下载原文章&#xff01; 第1章 绪论 1.1 引言 在当今社会&#xff0c;速度决定了很多商业机构的成败。为了顺应时代发展&#xff0c;提高效率&#x…