当前位置: 首页 > news >正文

mysql之sql的优化方案(重点)

1、全字段匹配是最棒的

假如一个Staffs 这个表,将 name,age ,pos 组合成了一个联合索引,在where条件下,能够使用到的索引越多越好。
EXPLAIN SELECT * FROM staffs WHERE NAME = 'July';
EXPLAIN SELECT * FROM staffs WHERE NAME = 'July' AND age = 25;
EXPLAIN SELECT * FROM staffs WHERE NAME = 'July' AND age = 25 AND pos = 'dev';

 

 2、最佳左前缀法则

 

 创建索引的时候,  name --> age --> pos 
在使用索引的时候,也必须按照这个顺序来,不能少,顺序可以乱。

 

 3、索引列上不计算

3、不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描。

 

 4、不能使用索引中范围条件右边的列

Explain select * from staffs where name='' and age >25 and pos='';
age > 25  这个 age 这个索引也用到了,但是 pos这个字段的索引没有起作用,失效了。

 5、尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select *

 

 以上的SQL语句,一样的where条件,因为 select 后面的字段不一样,sql的执行效率就不一样,因为第二个语句将 * 改为了三个索引字段,使用到了覆盖索引。

 6、使用不等于(!= 或者<>)的时候无法使用索引

 7、注意字段的null值和 not null 对sql的影响

第一种情况,name 是一个索引,name 字段允许为null

 第二种情况:name 是一个索引,name 字段不允许为null

 总结就是:索引字段,这个字段是否为null 对于sql的好坏有一定的影响,需要警惕。尽可能设置为not null

8、like以通配符开头('%abc...')mysql索引失效

 9、字符串不加单引号索引失效 (底层使用数据类型转换)

 10、少用or,用它来连接时会索引失效

 可以使用union 替代 or

接着是一个索引的练习题:

以上这些就是sql的优化的一部分。

总结了一个口诀:

全值匹配才最棒,最佳左前缀法则;
刘备大哥不能死,关羽兄弟不能断;
索引列上少计算,范围之后全完蛋;
LIKE百分写最右,覆盖索引有妙用;
不等空值还有OR,索引影响要注意;

mysql的优化是一个非常大的命题,大约分为4个大方向,我们只讲了一个方向:索引优化

  • 索引优化: 合理设计索引,优化查询性能,避免全表扫描。
  • 查询优化: 优化SQL查询语句,避免慢查询,提高查询效率。
  • 缓存优化: 合理利用MySQL内置的缓存机制,如查询缓存、结果缓存等,减少对数据库的访问次数。
  • 硬件优化: 选择合适的硬件配置,包括CPU、内存、磁盘等,提高数据库的吞吐量和响应速度。

相关文章:

mysql之sql的优化方案(重点)

1、全字段匹配是最棒的 假如一个Staffs 这个表&#xff0c;将 name,age ,pos 组合成了一个联合索引&#xff0c;在where条件下&#xff0c;能够使用到的索引越多越好。 EXPLAIN SELECT * FROM staffs WHERE NAME July; EXPLAIN SELECT * FROM staffs WHERE NAME July AND age…...

【LeetCode】303. 区域和检索 - 数组不可变

目录 描述Python1. 前缀和 描述 给定一个整数数组nums&#xff0c;处理以下类型的多个查询&#xff1a;计算索引left和right&#xff08;包含left和right&#xff09;之间的nums元素的 和 &#xff0c;其中left < right 实现NumArray类&#xff1a; NumArray(int[] nums)&a…...

前端开发 vue 中如何实现 u-form 多个form表单同时校验

在 Vue 项目中使用 UView UI 的 u-form 组件时&#xff0c;多个表单同时校验的需求非常常见。例如&#xff0c;当我们有多个表单需要在同一个页面中进行校验并提交时&#xff0c;我们需要确保每个表单都能进行单独验证&#xff0c;同时可以在同一时刻进行批量验证。 接下来&am…...

【网络】什么是速率 (Rate)带宽 (Bandwidth)吞吐量 (Throughput)?

注意单位&#xff1a; 在 kbps、Mbps、Gbps 中&#xff0c;前面的 k、M、G 是 国际单位制(SI) 的前缀&#xff0c;表示不同的数量级&#xff1a; k&#xff08;千/kilo&#xff09;: (10^3 1,000) kbps&#xff08;kilobits per second&#xff09;: 每秒 1,000 位&#xff08…...

(leetcode算法题)769. 最多能完成排序的块

Q1. 是否能用贪心算法&#xff1f;为什么&#xff1f; 先预设一个策略&#xff0c;每当当前的nums[i]满足可以 "成块"&#xff0c;就直接让这个数成块&#xff0c;也就是说之后的遍历过程中不会将这个数在考虑到自己的块内&#xff0c; "成块" 是指只要只…...

高光谱相机的特点

光谱特性 高光谱分辨率&#xff1a;能将光谱范围分割成极窄的波段&#xff0c;光谱分辨率通常达到纳米级甚至亚纳米级&#xff0c;可精确捕捉到不同物质在细微光谱差异上的特征&#xff0c;比如可以区分不同种类的植被因叶绿素含量等差异而在光谱上的细微变化。 多波段探测&a…...

《Spring Framework实战》8:4.1.3.Bean 概述

欢迎观看《Spring Framework实战》视频教程 Spring IoC 容器管理一个或多个 bean。这些 bean 是使用 您提供给容器的配置元数据&#xff08;例如&#xff0c;以 XML <bean/>定义的形式&#xff09;。 在容器本身中&#xff0c;这些 bean 定义表示为BeanDefinition对象&a…...

BGP的local_preference本地优先级属性

一、BGP的local preference属性简介 1、local preference公认任意属性 当一条BGP路由器中存在多条去往同一目标网络的BGP路由时&#xff0c;BGP协议会对这些BGP路由属性进行比较&#xff0c;从而筛选出最佳到达目标网络的通达路径。本地优先属性&#xff0c;只在IBGP对等体之间…...

IP地址与端口号

ip地址与端口号 IP地址和端口号是网络通信中的两个重要概念&#xff0c;它们共同构成了网络通信的基础。 IP地址&#xff1a;网络世界的门牌号 定义&#xff1a;IP地址&#xff08;Internet Protocol Address&#xff09;是分配给网络设备的数字标签&#xff0c;用于在计算机网…...

Fastapi + vue3 自动化测试平台(2)--日志中间件

FastAPI Vue3 自动化测试平台&#xff08;2&#xff09;-- 日志中间件 前言 在开发和运行自动化测试平台时&#xff0c;日志功能是至关重要的一部分。日志不仅能帮助我们快速定位和解决问题&#xff0c;还能作为平台运行的记录依据&#xff0c;为后续分析和优化提供参考。 …...

iOS - AutoreleasePool

1. 基本数据结构 // AutoreleasePool 的基本结构 struct AutoreleasePoolPage {static pthread_key_t const key AUTORELEASE_POOL_KEY;magic_t const magic;id *next; // 指向下一个可存放对象的地址pthread_t const thread; // 所属线程AutoreleasePoolPage …...

1.CSS的复合选择器

1.1 什么是复合选择器 在CSS中&#xff0c;可以根据选择器的类型把选择器分为基础选择器和复合选择器&#xff0c;复合选择器是建立在基础选择器之上&#xff0c;对基础选择器进行组合形成的。 复合选择器可以更精准、更高效的选择目标元素&#xff08;标签&#xff09; 复…...

优质内容在个人IP运营中的重要性:以开源AI智能名片商城小程序为应用实例的深度探讨

摘要&#xff1a;在数字化时代&#xff0c;个人品牌&#xff08;IP&#xff09;的塑造与传播已成为各行各业提升影响力、吸引用户关注、促进商业转化的关键策略。优质内容作为连接个人IP与目标受众的桥梁&#xff0c;其在个人IP运营中的重要性不言而喻。本文旨在深入探讨优质内…...

Kafka性能测试

kafka是一个大数据消息队列&#xff08;可以看做为缓存软件&#xff09; 功能测试&#xff1a;能够读写数据 性能测试&#xff1a;1、测试生产者每秒往kafka写入的最大吞吐量 2、测试消费者每秒从kafka里获取消息最大吞吐量 硬件 3台物理机组成的kafka集群。 内存121G、24…...

解决Docker冲突问题

错误&#xff1a;docker-ce-cli conflicts with 2:docker-1.13.1-210.git7d71120.el7.centos.x86_64 错误&#xff1a;docker-ce conflicts with 2:docker-1.13.1-210.git7d71120.el7.centos.x86_64 您可以尝试添加 --skip-broken 选项来解决该问题 您可以尝试执行&#xff1a;…...

新手入门 React .tsx 项目:从零到实战

&#x1f680; 新手入门 React .tsx 项目&#xff1a;从零到实战 &#x1f4bb;✨ 如果你是 React 新手&#xff0c;刚接触 .tsx 文件&#xff0c;不要担心&#xff01;跟着这份指南&#xff0c;一步一步来&#xff0c;你很快就能上手了&#xff01;&#x1f447; &#x1f4d…...

基于可信数据空间的企业数据要素与流通体系建设(附ppt 下载)

近期&#xff0c;可信数据空间会议召开。大数据系统软件国家工程研究中心总工程师王晨发表了题为《基于可信数据空间的企业数据要素与流通体系建设》主旨演讲。 篇幅限制&#xff0c;部分内容如下&#xff1a;...

二维数组:求最大元素及其所在的行坐标及列坐标(PTA)C语言

求出NM整型数组的最大元素及其所在的行坐标及列坐标&#xff08;如果最大元素不唯一&#xff0c;选择位置在最前面的一个&#xff09;。 函数接口定义&#xff1a; int fun(int array[N][M]) ; 注意&#xff1a;函数只需靠return返回最大元素的值&#xff0c; 行、列坐标通过…...

WebRtc01: 课程导学、框架介绍

应用 难点 课程大纲 学习收获 涉及内容 概述 用途 学习收获...

HQChart使用教程30-K线图如何对接第3方数据44-DRAWPIE数据结构

HQChart使用教程30-K线图如何对接第3方数据44-DRAWPIE数据结构 效果图DRAWPIEHQChart代码地址后台数据对接说明示例数据数据结构说明效果图 DRAWPIE DRAWPIE是hqchart插件独有的绘制饼图函数,可以通过麦语法脚本来绘制一个简单的饼图数据。 饼图显示的位置固定在右上角。 下…...

告别“字符串拼接”:在.NET中用LINQ重塑数据查询

告别“字符串拼接”&#xff1a;在.NET中用LINQ重塑数据查询在 .NET Framework 3.5 问世之前&#xff0c;C# 程序员在处理数据时往往面临着“精神分裂”般的痛苦&#xff1a;我们需要在 C# 代码中编写逻辑&#xff0c;而在处理数据库时又要切换到 SQL 字符串&#xff0c;处理 X…...

实测Xinference-v1.17.1:5分钟在Mac/Windows/Linux上搭建媲美OpenAI的本地API服务

实测Xinference-v1.17.1&#xff1a;5分钟在Mac/Windows/Linux上搭建媲美OpenAI的本地API服务 你是否曾经想过在自己的电脑上运行类似ChatGPT的AI服务&#xff0c;但又担心复杂的部署过程&#xff1f;或者担心使用云端API时的隐私问题和网络延迟&#xff1f;今天&#xff0c;我…...

熬夜整理10款论文降AI工具红黑榜,避开知网退稿大坑

毕业季定稿最让人头疼的不是重复率&#xff0c;而是迟迟降不下来的AI疑似度。去年我自己改稿经常改到凌晨&#xff0c;一查还是飘红&#xff0c;这才意识到纯手工降低ai率根本行不通。 为了稳妥达标&#xff0c;我集中研究了市面上常见的论文降ai方法&#xff0c;整理出这份干…...

3步打造高效多平台直播:OBS Multi RTMP插件完整解决方案

3步打造高效多平台直播&#xff1a;OBS Multi RTMP插件完整解决方案 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 想要突破单一平台限制&#xff0c;实现多平台同步直播却苦于操作复杂…...

如何快速提升中文文献管理效率:Jasminum插件3大核心功能完整指南

如何快速提升中文文献管理效率&#xff1a;Jasminum插件3大核心功能完整指南 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件&#xff0c;用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 还在…...

DAMA-DMBOK中的数据治理组织架构、元数据管理实现路径、数据质量维度测量方法

针对DAMA-DMBOK框架下的这三个核心主题,以下是根据其最新版本(DMBOK2及2024年修订版)所做的深度解析,旨在为数据管理专业人士提供一个系统化的认知框架。 📊 数据治理组织架构:构建三道防线 DAMA-DMBOK指出,数据治理需要建立一个清晰的决策体系,为数据管理提供指导和…...

GraphRAG 安装与使用教程

一、GraphRAG 简介 GraphRAG&#xff08;Graph Retrieval-Augmented Generation&#xff09;是由微软研究院开发的基于知识图谱的检索增强生成框架。它通过构建结构化的知识图谱来增强大语言模型&#xff08;LLM&#xff09;的推理能力&#xff0c;相比传统 RAG 方法在处理复杂…...

灵毓秀-牧神-造相Z-Turbo创作实战:如何写出高质量提示词生成精美图片

灵毓秀-牧神-造相Z-Turbo创作实战&#xff1a;如何写出高质量提示词生成精美图片 1. 认识灵毓秀-牧神-造相Z-Turbo模型 1.1 模型特点与优势 灵毓秀-牧神-造相Z-Turbo是一款专为《牧神记》IP定制的文生图AI模型&#xff0c;基于Z-Image-Turbo架构进行深度优化。与通用文生图模…...

Step3-VL-10B-Base助力互联网内容分析:海量图文信息的情感与主题挖掘

Step3-VL-10B-Base助力互联网内容分析&#xff1a;海量图文信息的情感与主题挖掘 每天&#xff0c;互联网上都会产生数以亿计的图文内容&#xff0c;从社交媒体上的随手一拍&#xff0c;到新闻网站的长篇报道。对于品牌方、内容平台或是研究者来说&#xff0c;如何从这片信息的…...

集合、元素、隶属与包含:知识分类的数学基础

在知识表示与知识图谱中&#xff0c;分类并不是随意进行的。无论是区分类与实例&#xff0c;还是建立上位类与下位类&#xff0c;背后都需要一种更基础的结构来支撑&#xff0c;这就是集合观念。集合、元素、隶属关系、包含关系与相等关系&#xff0c;构成了知识分类最基本的数…...