mysql优化技巧

MySQL 查询优化技巧!超详细 在数据库中,查询是最常见的操作之一,随着数据量的增长,查询性能可能会成为系统瓶颈。优化MySQL查询可以显著提高数据库的响应速度和系统的整体性能。本文将介绍一些常用的MySQL查询优化技巧。 阅读详情

这边总结一下mysql在使用过程中比较常见的优化小技巧,比较不好理解的都加了小例子

1、当使用索引列进行查询的时候尽量不要使用表达式,可以把计算放在业务层,而不是数据库层

错误例:

select actor_id from actor where actor_id+1=5;

2、尽量使用主键查询,而不是其他索引,因为主键查询不会触发回表查询

3、使用前缀索引

字段长度比较长的时候,截取部分识别度高的部分当索引

想要详细了解的可以看我文章mysql前缀索引--带案例分析

4、使用索引扫描来排序

5、union all、in、or都能够使用索引,推荐使用in

6、范围列可以用到索引

范围条件是:<、<=、>、>=、between

范围列可以用到索引,但范围列后面的列无法用到索引,索引最多用于一个范围列

7、强制类型转换会导致全表扫描

例如user表中的phone是varchar类型的

explain select * from user where phone=13800001234;不会触发索引

explain select * from user where phone=‘13800001234‘;加入引号之后触发索引

8、更新十分频繁、数据区分度不高的字段不宜建立索引

更新会变更B+树,更新频繁的字段建立索引会大大降低数据库的性能(叶子节点插数据,合并分裂会导致n多的io)

区分不大的属性,例如性别,建立索引没有什么意义,不能够有效的过滤数据,一般区分度要在80%以上的列才适合建立索引

区分度计算:count(distinct(列名))/count(*)

9、创建索引的列,不允许为null,可能会得到不符合预期的结果。业务中不能为null的字段

10、当需要进行表连接的时候,最好不要超过三张表,因为需要join的字段,数据类型必须一致(最好是索引列)

11、能使用limit尽量使用limit,避免过多无效扫描

12、单表索引建议控制在五个以内,索引会占用内存空间

13、单索引字段不允许超过五个(组合索引,最左匹配原则)

14、创建索引的时候避免以下错误概念

索引越多越好,索引多了占内存

过早优化,要在熟悉业务之后再优化

 

 

MySQL优化的十大技巧 一、优化你的MySQL查询缓存 在MySQL服务器上进行查询,可以启用高速查询缓存。让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一。当同一个查询被执行多次时,如果结果是从缓存中提取,那是相当快的。 但主要的问题是,它是那么容易被隐藏起来以至于我们大多数程序员会忽略它。在有些处理任务中,我们实际上是可以阻止查询缓存工作的。 // query cache does NOT work $r ... 阅读详情

相关推荐

Ubuntu22.04安装ROS2 —— ROS2 humble 详细图文教程

本文详细介绍了如何在Ubuntu22.04(Jammy)系统下配置ROS2环境,安装RO2软件包,并验证安装成功。ROS2的版本是Humble Hawksbill。:ROS是一个开源的,提供硬件抽象、设备驱动、库、工具和通信机制,支持模块化开发与集成,广泛用于机器人控制和自动化应用。ROS2 相较于 ROS1 在架构设计、通信机制和平台支持等方面做出了改进。ROS1 采用集中式主节点(Master)进行节点间通信,存在单点故障风险,且实时性和跨平台支持较弱。

weixin_49649078的博客 8813

MYSQL调优(五)之索引优化小细节

MYSQL调优(五)之索引优化小细节

qq_40223516的博客 220

Vivado ILA抓不到低频信号?试试Capture Control模式,保姆级配置教程(附PWM调试实例)

本文详细解析了Vivado ILA的Capture Control模式在低频信号捕获中的应用,特别针对PWM调试等场景提供保姆级配置教程。通过条件采样和时间拉伸技术,有效解决传统ILA采样在低频信号调试中的存储深度不足、关键信号丢失等问题,并附赠呼吸灯PWM的完整调试实例,帮助FPGA开发者提升调试效率。

weixin_42549451的博客 350

大表join大表_阿里开发规范:超过三张表,禁止join骚操作

来源zhihu.com/question/56236190喜马拉雅山脉的钱德拉塔尔湖,印度 (© f9photos)前 言最近在看《阿里巴巴开发手册》,发现一个很有趣的编程规约,即《阿里巴巴开发手册中》第五章第二节第二条中明确规定了:超过三个表禁止 join。需要 join 的字段,数据类型必须绝对一致;多表关联查询时,保证被关联的字段需要有索引。不信你看:这让人突然想起了这张神...

weixin_39713841的博客 2395

3D深度饼图的QT实现

首先,我们需要创建一个QT项目并创建一个窗口,用于显示我们的饼图。在QT Creator中,选择创建一个新的QT Widgets应用程序项目,并创建一个新的窗口类。在本文中,我将介绍如何使用QT实现一个3D深度饼图(Pie 3D)的可视化效果。在构造函数中,我们将创建一个饼图(QChartView)并设置饼图的数据。这是一个简单的示例,您可以根据需要自定义和扩展代码来创建更复杂的饼图。现在,我们已经完成了3D深度饼图的QT实现。您将看到一个具有相应数据的3D深度饼图显示在窗口中。3D深度饼图的QT实现。

CodeJolt的博客 277

openpi 入门教程(一)安装、训练、微调与推理

OpenPI是由物理智能团队发布的机器人开源模型和软件包,包含两种主要模型:基于流的扩散视觉-语言-动作模型(VLA)的π₀模型和基于FAST动作标记器的自回归VLA的π₀-FAST模型。这些模型已在超过10,000小时的机器人数据上进行了预训练,并提供了基础模型检查点,支持开箱即用或根据用户数据集进行微调。OpenPI的实验性质意味着它可能不适用于所有平台,但鼓励研究人员和从业者进行创造性实验。运行这些模型需要至少具备NVIDIA GPU,推荐使用RTX 4090或更高规格的显卡。OpenPI支持在Ubu

2506_90492529的博客 5107

join和子查询效率_从阿里手册引出的Join查询思考

Join查询再熟悉不过了,看视没有必要把它拿出来说事,但某天一个学生问起了一个问题,有必要拿来说下。很多同学的毕生梦想都是想进BATJ的某家公司,其中又以案例为多数,是的,不管从哪个角度来说,阿里都是一个非常棒的公司,值得去挑战一把。回到今天的话题,一个同学(阿里的铁杆粉),问了我一个问题,在实际工作中到底应不应该用join查询,到底应该注意点什么?别以为这个问题很傻,如果你关注过阿里的规范,里面...

weixin_39781143的博客 387

《UDS/OBD诊断需求编辑工具》总目录

目录 1 基于CANdela Studio编辑CDD诊断描述文件 2 基于ODX Studio编辑ODX/PDX文件 2.1 编辑ODX-D诊断描述文件 2.2 编辑ODX-F刷写软件 该专栏主要负责介绍CANdela Studio和ODX Studio编辑CDD/ODX/PDX诊断描述文件。 1 基于CANdela Studio编辑CDD诊断描述文件 2 基于ODX Studio编辑ODX/PDX文件 【ODX介绍 】-1- 标准梳理 【ODX介绍】 -2-如何手..

「汽车电子助手」的博客 1万+

MySQL语句优化

实际开发过程中有时候往往我们会发现自己的数据库里有很多表,每个表的数据量也不小,然后写出来的SQL也比较复杂,各种关联和嵌套子查询,搞的人看的都眼晕,然后表面上看起来这个SQL部分用上了索引,结果性能还是很差。像基础的以及日常的SQL优化就是设计好索引,让一般不太复杂的普通查询都用上索引,但是针对复杂表结构和大数据量的上百行复杂SQL的优化,这样就必须得建立在我们先懂这个复杂SQL是怎么执行的。

m0_71836706的博客 983

YOLOv11 模型改进:利用新型损失函数实现精度跃升(含代码全解析)

在目标检测领域,损失函数的选择直接决定模型的精度上限。某自动驾驶公司将 YOLOv11 原有损失替换为新型损失后,障碍物检测 mAP 提升 10%,夜间场景误检率降低 22%;某物流分拣项目中,采用新损失的 YOLOv11 模型对小包裹的识别准确率从 82% 升至 96%。如果你也在为模型精度瓶颈、样本不平衡问题困扰,这篇教程将带你掌握 YOLOv11 损失函数的进阶技巧,真正帮你在检测性能上实现突破。损失函数是模型训练的“指南针”,它定义了模型“学习的方向”。传统损失(如 BCE、Focal Loss)在

m0_71589036的博客 714

语言模型推理能力与计算表达力深度解析

语言模型的推理能力本质上是一种知识迁移与泛化应用的过程,其核心在于Transformer架构中的自注意力机制和前馈网络的协同作用。计算表达力作为衡量模型能力的关键指标,涉及函数逼近、组合泛化和上下文理解等多个维度。随着模型规模的扩大,涌现能力现象揭示了参数规模与推理能力之间的非线性关系。在实际应用中,通过提示工程和微调策略可以有效激活和优化模型的推理表现。当前研究正探索模块化架构和世界模型整合等方向,以突破长程推理和因果关系建模等前沿挑战。本文深入探讨了语言模型推理泛化的技术原理与实践方法,为理解计算表达力

weixin_42521032的博客 343

MySQL优化技巧

MySQL优化三大方向① 优化MySQL所在服务器内核(此优化一般由运维人员完成)。② 对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进行参数调整。③ 对SQL语句以及表优化。MySQL参数优化1:MySQL 默认的最大连接数为 100,可以在 mysql 客户端使用以下命令查看mysql> show variables like 'max_connections';2:查看

8万+

YOLOv11改进 - C3k2融合 | C3k2融合融合WDBB宽度多样分支模块(Width Diverse Branch Block)通过多尺度分支增强特征表征能力

本文着眼于灰度图像目标检测所面临的挑战,提出了增强型目标检测网络 YOLO - MIF,该网络整合了多种多信息融合策略以对 YOLOv8 网络进行改进。文章开篇介绍了一种可创建伪多通道灰度图像的技术,此技术能增加网络的通道信息,同时缓解潜在的图像噪声与虚焦模糊问题。随后运用网络结构重新参数化技术,在不增加推断时间的情况下提升网络的检测性能。此外,引入了一种新颖的解耦式检测头,增强了模型处理灰度图像时的表现能力。

魔改工程师的博客 770

MySQL SQL优化技巧与原理

随着业务数据量的不断增加,MySQL查询语句的执行效率对程序的运行效率影响逐渐增大。因此,进行SQL优化变得至关重要。本文将结合SQL的执行语句顺序和各种SQL场景,介绍一些常见的MySQL SQL优化技巧及其背后的原理。MySQL的SQL优化是一个复杂而系统的过程,需要综合考虑多个方面。

qq_30009397的博客 1416

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

MySQL 优化技巧

技巧1 比较运算符能用 “=”就不用“<>” “=”增加了索引的使用几率。 技巧2 明知只有一条查询结果,使用 “LIMIT 1” “LIMIT 1”可以避免全表扫描,找到对应结果就不会再继续扫描了。 技巧3 为列选择合适的数据类型 能用TINYINT就不用SMALLINT,能用SMALLINT就不用INT,磁盘和内存消耗越小越好。 技巧4 将大的...

DYZ的博客 358

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Mysql优化技巧

MySql 小技巧 1)修改默认时区 select now(); 查看 MySql 系统时间。和当前时间做对比 set global time_zone = ‘+8:00’;设置时区更改为东八区 flush privileges; 刷新权限 2)批量删除以字段开头的表 # 先查询 SELECT GROUP_CONCAT(table_name) FROM information_schema.tab...

BushRo 1765

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

MySQL优化小技巧

* 技巧1 比较运算符能用 “=” 就不用 “<>” “=”增加了索引的使用几率。 技巧2 明知只有一条查询结果,那请使用 “LIMIT 1” “LIMIT 1”可以避免全表扫描,找到对应结果就不会再继续扫描了。 技巧3 为列选择合适的数据类型 能用TINYINT就不用SMALLINT,能用SMALLINT就不用INT,道理你懂的,磁盘和内存消耗越小越好嘛。 1...

mgx ^_^~的博客 205

mysql十大优化技巧_MySQL数据库十大优化技巧

优化你的MySQL查询缓存在MySQL服务器上进行查询,可以启用高速查询缓存。让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一。当同一个查询被执行多次时,如果结果是从缓存中提取,那是相当快的。但主要的问题是,它是那么容易被隐藏起来以至于我们大多数程序员会忽略它。在有些处理任务中,我们实际上是可以阻止查询缓存工作的。1. // query cache does NOT work2. $r = ...

weixin_33814090的博客 154

mysql查询优化技巧

MYSQL查询语句优化索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等。这里的记录的优化技巧更适用于开发人员,都是从网络上收集和自己整理的,主要是查询语句上面的优化,其它层面的优化技巧在此不做记录。 查询的开销指标: 执行时间 检查的行数 返回的行数 建立索引的几个准则: (1)、合理的建立索引能够加速数据读取效率,不合理的建立索引

IT打工匠 1905

【mysql】如何使用临时表优化技巧

在MySQL中,临时表是一种非常有用的工具,可以帮助优化查询性能。但是,如果不正确使用,也可能导致性能问题。以下是一些关于如何使用临时表来优化查询的技巧以及具体的例子。

qq_24766857的博客 839

101个MySQL调试和优化技巧

101个MySQL调试和优化技巧MySQL是一个功能强大的开源数据库。随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限。这里是101条调节和优化MySQL安装的技巧。一些技巧是针对特定的安装环境的,但这些思路是通用的。我已经把他们分成几类,来帮助你掌握更多MySQL的调节和优化技巧。MySQL 服务器硬件和操作系统调节:1. 拥有足够的物理内存来把整个InnoDB文件加载

游海东的技术专栏 1931

mysql十大优化技巧_数据库技巧——MySQL十大优化技巧

WEB开发者不光要解决程序的效率问题,对数据库的快速访问和相应也是一个大问题。希望本文能对大家掌握MySQL优化技巧有所帮助。1.优化你的MySQL查询缓存在MySQL服务器上进行查询,可以启用高速查询缓存。让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一。当同一个查询被执行多次时,如果结果是从缓存中提取,那是相当快的。但主要的问题是,它是那么容易被隐藏起来以至于我们大多数程序员会忽略它。在...

weixin_35975197的博客 173

【MySQL】常见SQL优化小技巧

这篇文章大多数的内容是参考了b站up主【苏三说技术】的关于sql优化的讲解视频,大家有兴趣的可以去观看。博主这里做个记录,方便后期的学习与回顾。

qq_51933234的博客 1059
上一篇: mysql优化之前缀索引--带案例分析
下一篇: mysql优化之索引扫描排序
zy_crazy_code
博客等级 码龄12年 290粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值