【MySQL】10条SQL优化语句,让你的MySQL数据库跑得更快!

C# WPF上位机开发(利用tcp/ip网络访问plc) 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 c# wpf如果是用来开发非标上位机的,那么和plc的通信肯定是少不了的。而且,大部分plc都支持modbus协议,所以这个时候如果有一个库可以帮助我们和plc设备进行modbus通信,那就非常方便的。目前NuGet下关于modbus的函数库还是有一些的,比如EasyModbus。 阅读详情
  1. 慢SQL消耗了70%~90%的数据库CPU资源;

  2. SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;

  3. SQL语句可以有不同的写法;

 

1 不使用子查询

例:SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name=’zhangsan’);

子查询在MySQL5.5版本里,内部执行计划器是这样执行的:先查外表再匹配内表,而不是先查内表t2,当外表的数据很大时,查询速度会非常慢。
在MariaDB10/MySQL5.6版本里,采用join关联方式对其进行了优化,这条SQL会自动转换为
SELECT t1.* FROM t1 JOIN t2 ON t1.id = t2.id;
但请注意的是:优化只针对SELECT有效,对UPDATE/DELETE子查询无效,固生产环境应避免使用子查询

2 避免函数索引

例:SELECT * FROM t WHERE YEAR(d) >= 2016;
由于MySQL不像Oracle那样支持函数索引,即使d字段有索引,也会直接全表扫描。
应改为—–>
SELECT * FROM t WHERE d >= ‘2016-01-01’;

3 用IN来替换OR

低效查询
SELECT * FROM t WHERE LOC_ID = 10 OR LOC_ID = 20 OR LOC_ID = 30;
—–>
高效查询
SELECT * FROM t WHERE LOC_IN IN (10,20,30);

4 LIKE双百分号无法使用到索引

SELECT * FROM t WHERE name LIKE ‘%de%’;
—–>
SELECT * FROM t WHERE name LIKE ‘de%’;
目前只有MySQL5.7支持全文索引(支持中文)

5 读取适当的记录LIMIT M,N

SELECT * FROM t WHERE 1;
—–>
SELECT * FROM t WHERE 1 LIMIT 10;

6 避免数据类型不一致

SELECT * FROM t WHERE id = ’19’;
—–>
SELECT * FROM t WHERE id = 19;

7 分组统计可以禁止排序

SELECT goods_id,count(*) FROM t GROUP BY goods_id;
默认情况下,MySQL对所有GROUP BY col1,col2…的字段进行排序。如果查询包括GROUP BY,想要避免排序结果的消耗,则可以指定ORDER BY NULL禁止排序。
—–>
SELECT goods_id,count(*) FROM t GROUP BY goods_id ORDER BY NULL;

8 避免随机取记录

SELECT * FROM t1 WHERE 1=1 ORDER BY RAND() LIMIT 4;
MySQL不支持函数索引,会导致全表扫描
—–>
SELECT * FROM t1 WHERE id >= CEIL(RAND()*1000) LIMIT 4;

9 禁止不必要的ORDER BY排序

SELECT count(1) FROM user u LEFT JOIN user_info i ON u.id = i.user_id WHERE 1 = 1 ORDER BY u.create_time DESC;
—–>
SELECT count(1) FROM user u LEFT JOIN user_info i ON u.id = i.user_id;

10 批量INSERT插入

INSERT INTO t (id, name) VALUES(1,’Bea’);
INSERT INTO t (id, name) VALUES(2,’Belle’);
INSERT INTO t (id, name) VALUES(3,’Bernice’);
—–>
INSERT INTO t (id, name) VALUES(1,’Bea’), (2,’Belle’),(3,’Bernice’);

微信8.0所有URL Scheme大全:隐藏入口与使用场景详解 内附195条微信URL Scheme URL Scheme 类似于一个协议地址,它的作用和网页的https://差不多,只不过它不是打开网页,而是直接跳转到微信App内部的功能页面。→ 打开微信扫一扫→ 打开零钱通详情→ 打开微信面对面支付微信功能的“快捷指令”。整理下来,微信的 URL Scheme 基本覆盖了支付、联系人、扫一扫、小程序、运动设备等多个入口。对开发者来说,这些 Scheme 就像是隐藏的快捷通道,在某些场景(比如支付唤起、活动红包、客服入口)能大大简化流程。微信对外部调用限制非常严格。 阅读详情

相关推荐

某银行大数据分析平台之云原生架构

软考架构师论文

doudoudouy的博客 768

MySQL SQL语句优化的10条建议

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34279061的博客 223

ZYNQ 系统的IEEE1588 实现方法

zynq IEEE588/PTP 实现方案(讨论稿)

姚家湾博客 1万+

如何对数据库响应变慢进行优化

1)show status(show session status like '%字符串%')来查看最近服务器都在处理什么内容,是以查询还是以更新为主 得到信息包括:  访问最多的数据 执行的最多的查询种类 停留时间最长的状态 用来执行查询使用的最频繁的子系统 查询过程中访问的数据种类 执行了多少种不同类型的活动,比如索引扫描 2)根据explain执行查看你本次执行的查询语句的各

xuqiaobo的博客 4220

智能体在车联网中的应用:第19天 智能体理论与初步实践 D30:阶段小结——在SUMO中使用TraCI控制预编程智能体

本文介绍了如何将强化学习从算法仿真迁移到交通系统实践,重点讲解了SUMO微观交通仿真平台与TraCI实时控制接口的架构。通过构建一个预编程驾驶智能体,演示了车辆从起点到目标点的导航控制。文章详细解析了TraCI的双向通信机制和事件驱动模型,对比了其与传统RL环境的差异,并提供了完整的Python实现框架,包括路网配置、车辆控制和基于向量场的导航逻辑。该实践为后续开发高级学习型交通智能体奠定了基础。

IT深耕十余载,大道之简 1478

Windows10内核逆向-2-KiSystemCall64的调用流程剖析

本文深入剖析了Windows 10 x64系统中KiSystemCall64函数的完整调用流程。从用户态触发syscall指令开始,详细讲解了如何通过swapgs切换内核栈、构建KTRAP_FRAME陷阱帧、进行SMAP/CFG等安全检查,到最终通过SSDT寻址并执行目标系统服务的全过程,揭示了系统调用从Ring 3到Ring 0切换的核心机制与安全设计。

weixin_29209805的博客 82

10条SQL优化语句,让你的MySQL数据库跑得更快!

慢SQL消耗了70%~90%的数据库CPU资源; SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低; SQL语句可以有不同的写法; 1不使用子查询 例:SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name=’hechunyang...

aikenqiu5098的博客 111

基于STM32+OneNet设计的物联网智慧路灯(100)

本次设计的智能路灯采用STM32芯片和OneNet物联网平台进行连接,开发出支持太阳能充电锂电池供电、GPS定位上传位置信息、手动/自动控制路灯开关、环境光照调节、红外传感器检测周围人员、空气质量监测等多项功能。同时,当路灯发生异常情况时,系统可以自动发送邮件或短信到指定邮箱或电话。

7726

mysql数据库优化语句_【MySQL】10条SQL优化语句,让你的MySQL数据库跑得更快!

慢SQL消耗了70%~90%的数据库CPU资源;SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;SQL语句可以有不同的写法;1不使用子查询例:SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name=’hechunyang’);子查询在MySQL5.5版本里,内部执行计划器是这样执行的...

weixin_33146151的博客 183

Serial RapidIO Gen2 IP 说明(三)

前言 继续接着上篇文章,介绍Serial RapidIO Gen2 IP 的具体端口信息。 一、端口描述 1、缓冲设计接口 2、物理层接口 参考说明 【1】Serial RapidIO Gen2 v4.1https://china.xilinx.com/content/dam/xilinx/support/documentation/ip_documentation/srio_gen2/v4_1/pg007_srio_gen2.pdf ...

记录所学,分享知识,结识挚友 1320

安装Codex时出现无法下载此应用和Microsoft Store初始化失败的解决方案

本文主要介绍了安装Codex时出现无法下载此应用和Microsoft Store初始化失败的解决方案,希望能对使用codex的同学们有所帮助。 文章目录 1. 问题描述 2. Windows 解决方案 3. Mac解决方案

weixin_43178406的博客 7万+

10条SQL优化语句,让你的MySQL数据库跑得更快

慢SQL消耗了70%~90%的数据库CPU资源; SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低; SQL语句可以有不同的写法; 1不使用子查询 例:SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name=’hechunyang...

242

【AI大模型应用开发】【LangChain系列】实战案例6:利用大模型进行文本总结的方法探索,文本Token超限怎么办?

假设有一组文档(PDF、Notion页面、客户问题等),你想要总结内容。可以利用大模型来帮你。今天来系统看下利用大模型来对文本进行总结的方法,以LangChain的使用为例。

同学小张的博客 3749

MySQL优化技巧

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

8万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Mysql 批量插入大量数据的两种方案以及优缺点(分别是 5W 条数据和 10W 条数据)

Mysql 批量插入大量数据的两种方案以及优缺点(分别是 5W 条数据和 10W 条数据)

qq_41824825的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Sql(sql语句优化,索引设计优化)

Sql(sql语句优化,索引设计优化)

轻言细语莫泪痕 1954

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

mysql跑高_10条SQL优化语句,让你的MySQL数据库跑得更快

慢SQL消耗了70%~90%的数据库CPU资源;SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;SQL语句可以有不同的写法;1不使用子查询例:SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name=’hechunyang’);子查询在MySQL5.5版本里,内部执行计划器是这样执行的...

weixin_28767599的博客 149

MySQL 数据库中 52 条 SQL 语句性能优化方法,干货必收藏!

在适当的情形下使用GROUP BY而不是DISTINCT,在WHERE, GROUP BY和ORDER BY子句中使用有索引的列,保持索引简单,不在多个索引中包含同一个列,有时候MySQL会使用错误的索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT的问题,对于记录数小于5的索引字段,在UNION的时候使用LIMIT不是是用OR。大多数时候(99%),表变量驻扎在内存中,因此速度比临时表更快,临时表驻扎在TempDb数据库中,因此临时表上的操作需要跨数据库通信,速度自然慢。

2401_84046895的博客 1051

mysql 优化sql语句的几种方法

转载:https://www.cnblogs.com/kongzhongqijing/articles/3544822.html 优化sql语句的几种方法 1、通过show status命令了解SQL的执行效率 show [session|global]status like 'com_%'; 2、定位执行效率较低的SQL语句 1)慢查询   开启方法 linux: 配置文件(/...

akunshouyoudou的博客 7114

MySql 常用SQL语句、 SQL优化

SQL语句主要分为五类:数据定义语言(DDL)用于管理数据库结构,数据查询语言(DQL)用于检索数据,数据操纵语言(DML)用于增删改数据,数据控制语言(DCL)用于权限管理,事务控制语言(TCL)用于事务管理。键约束方面,超键能唯一标识行,候选键是最小超键,主键是选定的候选键,外键则关联表间数据。SQL约束包括非空、唯一、主键、外键、检查及默认值约束,确保数据完整性。

weixin_44289947的博客 1332

MySQL 中优化 SQL 语句以提高查询性能

在 MySQL 中优化 SQL 语句是提高查询性能的关键,尤其当数据量大或查询复杂时。

完颜振江 2041

如何分析和优化SQL性能:深入解析EXPLAIN语句

Chat2DB不仅支持自然语言转SQL,还能自动优化SQL语句,减少不必要的开销,甚至能够解释复杂的查询计划,帮助开发者更好地理解查询的执行过程。本文将深入探讨子查询和连接的概念,并通过实际案例展示它们的应用,帮助您在不同场景下做出明智的选择。总之,子查询和连接各有千秋,了解它们的特点并根据具体情况灵活选择,才能在SQL查询中游刃有余。:子查询将复杂的查询拆分为更小、更简单的部分,使得理解和维护变得更加容易。虽然子查询和连接都能完成相同的功能,但它们各有优劣,适用于不同的场景。

Chat2DB的博客 1430

SQL 语句优化:提升数据库性能的关键

SQL 语句优化是一个综合性的工作,需要从多个方面进行考虑。通过合理创建索引、优化查询语句结构、优化数据访问以及适当调整数据库服务器配置,可以显著提高 SQL 语句的执行效率,从而提升整个数据库系统的性能。在实际应用中,需要不断地对 SQL 语句进行分析和优化,以适应业务数据的增长和变化。同时,要结合数据库的特点和应用场景,选择最合适的优化策略,确保系统能够高效稳定地运行。

m0_57836225的博客 1165
上一篇: nginx虚拟目录配置root和alias
下一篇: 乐视秒杀:每秒十万笔交易的数据架构解读
Shawn7788
博客等级 码龄12年 10粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值