sql常用优化手段

GaussDB(DWS)日常运维SQL语句 statement_history记录了执行时间超过阈值(log_min_duration_statement,默认3 s)的详细SQL信息,包含计划生成时间、执行时间、锁等待时间等信息,其中部分信息与参数track_stmt_stat_level设置的级别(默认为’OFF,L0’)有关。根据unique_sql_id查询历史执行信息。– 示例:unique_sql_id为3267119089,全量SQL级别为L2,相当于track_stmt_stat_level=‘L2,off’ 阅读详情

常见优化手段:

  1. where及order_by的列建索引
  2. 避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
  3. 避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,可以在字段上设置默认值0
  4. 避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,使用union all替代
  5. like '%abc%'导致全表扫描,可以考虑全文检索
  6. in 和 not in 也要慎用,否则会导致全表扫描,连续的数值可用between替代in
  7. where 子句中使用参数,也会导致全表扫描,from t where num=@num,可改为from t with(index(索引名)) where num=@num
  8. where 子句中对字段进行表达式操作会导致全表扫描,where num/2=100可改为 where num=100*2
  9. 避免在where子句中对字段进行函数操作会导致全表扫描,where substring(name,1,3)='abc’可改为where name like ‘abc%’
  10. 有些时候可用exists 代替 in
  11. 联合索引符合前置原则
  12. 性别等少量的数据建立索引,无用
  13. 索引并不是越多越好,mysql最多15个,降低insert,update效率
  14. 避免更新 clustered 索引数据列,因为 clustered 索引数据列的顺序就是表记录的物理存储顺序
  15. 尽量使用数字型字段,只含数值信息的字段不要设计为字符型
  16. 使用 varchar/nvarchar 代替 char/nchar 因为变长字段存储空间更小
  17. 不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。
  18. 尽量使用表变量来代替临时表。如果表变量包含大量数据,请注意索引非常有限(只有主键索引)。
  19. 避免频繁创建和删除临时表,以减少系统表资源的消耗。
  20. 对于一次性事件,最好使用导出表代替临时表
  21. 在新建临时表时,如果一次性插入数据量很大,那么可以使用 select into 代替 create table,避免造成大量 log ,以提高速度;如果数据量不大,为了缓和系统表的资源,应先create table,然后insert。
  22. 如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除,先 truncate table ,然后 drop table ,这样可以避免系统表的较长时间锁定。
  23. 尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该考虑改写。
  24. 使用基于游标的方法或临时表方法之前,应先寻找基于集的解决方案来解决问题,基于集的方法通常更有效。
  25. 对小型数据集使用 FAST_FORWARD 游标通常要优于其他逐行处理方法,尤其是在必须引用几个表才能获得所需的数据时。在结果集中包括“合计”的例程通常要比使用游标执行的速度快。如果开发时间允许,基于游标的方法和基于集的方法都可以尝试一下,看哪一种方法的效果更好。
  26. 在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF 。无需在执行存储过程和触发器的每个语句后向客户端发送 DONE_IN_PROC 消息。
  27. 尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。
  28. 尽量避免大事务操作,提高系统并发能力。
    代替in 的改写方案:
    1表中数值某些情况用exists代替
    in-:::如果子查询的结果记录小,主查询中的表大又有索引时使用。 IN先执行子查询,in是把外表和内表作hash连接,另外IN时不对NULL进行处理。,
    exists-:如果外层的主查询记录较少,子查询中的表大又有索引时使用。exists以外层表为驱动表,先访问外表,对外表作loop循环,每次loop循环再对内表进行查询。
    2 有限数值:
explain SELECT *
FROM history_join_recording HJR right JOIN (
    SELECT 12054 AS cid UNION ALL
    SELECT 65158 UNION ALL
    SELECT 102585
) AS tmp ON HJR.join_recording_id = tmp.cid
多视图学习 (Multi-View Learning) 多视角/多视图学习(Multi-view learning)是陶大成提出的一个研究方向。我们都知道,在机器学习中样本可以用不同的特征(如图片可以用LBP、SIFT等特征)来表示,或者从不同的角度进行观察(如从前后左右观察一个对象),甚至是采用不同的传感器来观测(如RGB摄像头,Depth摄像头),这些不同的观测手段、角度或特征在多视角学习中称为“视角”。多视角学习通过对不同的视角进行统一分析和研究,希望能够得到更好的分类或聚类等等的效果。 阅读详情

相关推荐

cs188Inference in Bayes Nets(贝叶斯网络的推理)

cs188Inference in Bayes Nets贝叶斯网络的推理Question1(3 points):Bayes Net StructureQuestion2(1 points):Bayes Net ProbabilitiesQuestion 3(5 points):Join FactorsQuestion4(4 points):EliminateQuestion5(4 points):NormalizeQuestion 6(4 points):Variable EliminationQuesti

weixin_46582817的博客 1674

SQL优化的方法

(1)建立物化视图或尽可能减少多表查询。(2)以不相干子查询替代相干子查询。(3)只检索需要的列。(4)用带in的条件子句等价替换or子句。(5)经常提交commit,以尽早释放锁。(6)避免嵌套的游标(Cursor)和多重循环等。(7)在经常查询的列上创建索引,提高查询效率。(8)避免使用模糊查询进行匹配,如果一定要使用,建议使用最左模糊匹配原则。(9)慢的查询的sql,根据性能和存储容量大小进行评估,适当的可以考虑水平分表和垂直分表,以提高sql的查询性能。

m0_45312259的博客 1万+

量化爬虫实战:手把手教你搞定同花顺问财的hexin-v参数(附JS逆向思路与Cookie Hook技巧)

本文详细解析了如何通过JS逆向技术获取同花顺问财平台的`hexin-v`参数,包括Cookie Hook技巧和完整解决方案架构。从环境搭建到参数定位,再到生成逻辑逆向,手把手教你突破数据获取限制,为量化交易提供可靠数据支持。

weixin_42557803的博客 399

sql调优的几种方式

sql调优的几种方式:避免使用select *、用union all 代替union、小表驱动大表、批量操作、多用limit、in中值太多、增量查询、高效的分页、用链接查询代替子查询、join数量不宜过多、join时需要注意、控制索引的数量、选择合理的字段类型、提升group by的效率、索引优化。

_江屿_ 9246

芯片设计中的“隐形杀手”:手把手教你理解并优化互连寄生参数(以SPEF/DSPF为例)

本文深入探讨了芯片设计中互连寄生参数的影响及优化策略,特别关注SPEF/DSPF文件解析与静态时序分析。通过实际案例展示了耦合电容对时序收敛的关键影响,并提供从定位到优化的完整解决方案,助力工程师应对先进工艺下的设计挑战。

weixin_30687051的博客 599

数字IC后端实现 | Innovus各个阶段常用命令汇总

数字IC后端设计实现之Innovus常用命令汇总

weixin_37584728的博客 7336

【数据库】SQL调优的几种方式

SQL调优

带你去吃小豆花的博客 8880

Python深度学习基于Tensorflow(17)基于Transformer的图像处理实例VIT和Swin-T

定义窗口注意力机制,与普通的注意力机制不同,其是在各个窗口中执行注意力机制。从中可以看到,其创新点主要是将图片进行拆分作为序列数据带入。差不多,主要实现的是一个下采样的算法过程;相同位置的像素绑定到一起构成一张新的。模型定义完毕后,初始化模型并开始训练。由于层之间重复性出现,可以定义一个。中,这里先实现拆分图片类。进行操作时我们定义三个类。定义一个多头注意力机制类。的数据,导入数据如下。导入数据,这里同样用。

bigcrab的博客 1635

SQL调优的最佳实践

sql优化的实践

weixin_50737119的博客 1498

LLM制造业最佳实践:基于大语言模型处理最优化问题,制造业如何更优排产,提升资源利用率

随着制造业数字化转型加速,生产排产优化成为提升企业效率和竞争力的关键环节。大语言模型(LLM)凭借其强大的多模态数据处理、动态优化和智能推理能力,在复杂排产场景中展现出独特优势。谷歌、DeepSeek等机构的研究表明,LLM可通过自然语言交互和生成式决策,突破传统优化算法的局限性。本报告结合半导体行业实践案例与技术路径,系统分析LLM在排产优化中的应用潜力与挑战。

shiter编写程序的艺术 940

三态门Multisim电路仿真——硬件工程师笔记

三态门原理及应用摘要 三态门是具有高电平(1)、低电平(0)和高阻态(Z)三种输出的逻辑电路,通过使能端(EN)控制状态切换。高阻态时输出端等效断路,避免信号冲突。其核心应用包括: 总线系统:多设备共享总线时,仅使能选中设备的三态门,其余保持高阻态,防止干扰。 数据选择器:利用三态门切换多路输入信号,简化电路设计。 实现方式分两种: TTL三态门(三极管构成):低电平使能有效,仿真验证输出逻辑与高阻态。 MOS三态门(MOS管构成):高电平使能有效,仿真显示使能信号控制输出状态。 文中还附硬件工程师笔试面试

XU157303764的博客 2012

sql优化的几种方式

一、为什么要对SQL进行优化 我们开发项目上线初期,由于业务数据量相对较少,一些SQL的执行效率对程序运行效率的影响不太明显,而开发和运维人员也无法判断SQL对程序的运行效率有多大,故很少针对SQL进行专门的优化,而随着时间的积累,业务数据量的增多,SQL的执行效率对程序的运行效率的影响逐渐增大,此时对SQL的优化就很有必要。 二、SQL优化的一些方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行

weixin_43965881的博客 4975

【WRFDA教程】客观分析(OBSGRID)详解

客观分析(OBSGRID)详解

WW、forever的博客 1134

【JAVA架构师成长之路】【持久层】第2集:SQL常用优化手段

目标:掌握10+核心SQL优化技巧,解决慢查询、高负载等生产问题本质逻辑:通过索引、分页、过滤条件等手段,最小化磁盘I/O和内存计算。 反例:(全表扫描) → 正例:(精准查询)。 联合索引最左匹配原则: 2-3分钟:避免索引失效的六大陷阱 对索引列计算或函数: 隐式类型转换: 3-4分钟:分页查询优化——拒绝OFFSET 问题: 扫描100万行后取10条。 优化方案: 5-6分钟:JOIN优化——小表驱动大表 原则:小表(结果集小)作为驱动表,减少循环次数。 手动控制: 6-7分钟:

因为热爱,所以付出 591

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

MySQL 常用SQL优化手段

1、选取最适用的字段属性MySQL 可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将 表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用 VARCHAR这种类型也是多余的,因为CHAR(6...

weixin_34096182的博客 85

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Mysql:SQL优化常用手段及explain使用(一)

SQL性能优化检查清单:通过EXPLAIN分析查询执行计划是核心优化手段。重点关注type列(访问类型),从最优到最差依次为system>const>eq_ref>ref>range>index>ALL,至少应达到range级别。检查key列确保实际使用索引,避免key为NULL的全表扫描。注意Extra列中的警告信息,如Using filesort和Using temporary需要优先优化。优化建议包括:添加合适索引、使用覆盖索引、优化ORDER BY/GROUP B

简单易懂学技术 1060

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

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

mysql 优化 工具_MySQL常用的SQL调优手段或工具有哪些

目录MySQL binlog_format=mixed,可行吗,为什么MySQL误删除frm文件该怎么办?你遇到过PHP连接MySQL的性能问题吗,如何解决的?MySQL常用的SQL调优手段或工具有哪些在一个2c4g的服务器上如何用python操作8GB的超大文件MySQL反应慢的排查思路一、MySQL binlog_format=mixed,可行吗,为什么不可行,因为会导致主从数据不一致Mixe...

weixin_31324995的博客 341

Mysql:SQL优化常用手段及explain使用(二)

本文通过五个典型案例展示了使用EXPLAIN进行SQL调优的方法:1)通过添加单列或复合索引优化全表扫描;2)利用复合索引消除文件排序;3)创建覆盖索引提升查询效率;4)遵循最左前缀原则设计索引;5)避免索引失效场景(如列运算、函数、类型转换等)。文章还介绍了高级调优技巧,包括JSON格式分析、EXPLAIN ANALYZE、优化器提示和索引使用统计,强调EXPLAIN是发现问题的手段,最终目标是通过索引优化、SQL改写等方案解决性能瓶颈。

简单易懂学技术 242

分析 SQL 语句的一般步骤

性能优化最忌讳之一便是无用功优化。准确的找出问题 SQL 以及分析其原因,是优化 SQL 语句的第一步也是最重要的一步。

让 Java 再次伟大! 591

教你处理数仓慢SQL常见定位问题

通常在运维监控出现CPU使用率较高、P80/P95指标较高、慢SQL数量上升等现象,或者业务出现超时报错时,优先应排查是否出现慢SQL。

华为云官方博客 1871

深入浅出SQL之SQL优化

优化SQL语句的一般步骤: 1. SHOW status like 'com_%';命令了解各种SQL的执行频率 Com_xxx 表示每个xxx语句执行的次数。 例如: Com_select Com_insert Com_update Com_delete 后面的值表示执行的次数 Com_commit Com_rollback 可以了解事务提交和了解的情况 Connections ----...

轨道如同轨迹的博客 201

慢SQL优化详解

摘要: 慢SQL优化流程分为四步:定位→分析→优化→验证。 定位:通过慢查询日志、监控工具(如Prometheus)、APM工具(SkyWalking)等发现慢SQL。 分析:使用EXPLAIN检查执行计划,重点关注访问类型(type)、索引使用(key)、扫描行数(rows)及额外信息(Extra)。 优化:常用手段包括: 加索引:遵循最左前缀原则设计复合索引; 避免索引失效:如避免字段函数操作、隐式类型转换; 分页优化:用主键分页或延迟关联减少深度分页开销; 覆盖索引:减少回表查询; 大表DDL:使用在

m0_74030445的博客 629

慢sql优化和Explain解析

要想程序跑的快,sql优化不可懈怠!今日来总结一下常用的慢sql的分析和优化的方法。

没有所谓的命运,只有不同的选择! 1550

MySQL调优的常用手段(实战向指南)

你是不是经常遇到这些场景?(疯狂点头.JPG)页面加载突然变慢凌晨三点收到数据库CPU报警面试官让你手撕慢查询优化别慌!今天咱们就掰开揉碎讲讲MySQL调优的常用手段。全程实战向干货,看完就能用!(文末有面试高频考点总结)最左前缀原则的实际应用场景如何判断索引是否生效?遇到过哪些索引失效的情况?大表分页查询怎么优化?JOIN查询的执行顺序是怎样的?执行计划分析 × 索引优化 × SQL改写 × 参数调整 = 性能提升最后送大家一句话:调优不是炫技,要结合业务场景做取舍!

pythonxiaowang8的博客 988

MySQL 优化之SQL和索引的优化

文章目录前言一.索引的执行分析二.索引失败三.SQL和索引的优化1) 慢查询日志(很重要)2) 查看磁盘I/O读写的数据量3) show status四.优化总结 前言 “索引什么时候会用到?” “索引什么时候会失效?” “索引是不是创建的越多越好?” “索引的底层实现是什么?” “多表联合查询怎么查?” “你做过哪些SQL和索引的优化?” 一.索引的执行分析 先来看看,一般我们做单表查询和多表联...

Nonpc的博客 5662

从慢SQL的创造看SQL优化原理

所以我们针对这2个原则进行攻击:通过构造查询来请求大量数据:使用LIMIT子句限制查询结果的数量:通过构造复杂的JOIN查询来增加数据库的计算负担:在参与JOIN的列上建立合适的索引,索引快速定位到匹配的记录:通过添加WHERE条件来增加查询难度:为WHERE条件中引用的列建立索引,用索引快速定位到满足WHERE条件的记录:类似于上一条,但是增加了更多的WHERE条件:为每个WHERE条件引用的列建立索引,实际执行的时候,用筛选效果最好的那个:使用LEFT JOIN来改变查询的执行顺序。

m0_63833709的博客 684
上一篇: nacos使用
下一篇: 解密数字360度
RobertLee~~~~~~~~
博客等级 码龄18年 14粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值