• 2024-07-02如何在Oracle、MySQL、Postgresql中查找全表扫描SQL
    HowtofindfulltablescanSQLinOracle,MySQL,Postgresql?Queriesthatdo“fulltablescan”aretheonesthatdon’tuseindexes.However,itismoresuitabletouseafulltablescanforsmalltables,anditwillnotcauseperformanceproblems.Or
  • 2024-06-04SQL 语句优化建议
    避免在索引列上使用表达式或隐式类型转换。尽量避免在where条件中使用NOT、<>、!=等操作符,因为这些可能会导致引擎放弃使用索引而使用全表扫描。or的两个条件都有索引的话,用union或unionall代替or。条件列没有索引情况下,用in操作符替换or,在mysql中or的效率为O(n),而in的效
  • 2024-05-09Mysql-索引失效
    0.背景借鉴抖音“老猿说开发”总结的一句口诀。索引可能失效场景如下:模型数空运最快序号关键字含义解释1模模糊查询当使用模糊查询(比如使用LIKE操作符)时,如果查询条件的开头使用了通配符(如%),那么索引可能会失效。因为通配符在查询开始位置时,数据库无法利用索引进
  • 2024-05-08同事使用 insert into select 迁移数据,开开心心上线,上线后被公司开除!
    作者:xlecho链接:https://juejin.cn/post/6931890118538199048血一般的教训,请慎用insertintoselect。同事应用之后,导致公司损失了近10w元,最终被公司开除。事情的起因公司的交易量比较大,使用的数据库是mysql,每天的增量差不多在百万左右,公司并没有分库分表,所以想维持这个表
  • 2024-04-12分区键有表达式计算引起分区表全表扫描案例
    sqlselectt.c_port_codec_port_code,sum(abs(t.N_jzbdl))/nvl((selectcount(1)fromT_M_T_FUNDNAVtjoin(
  • 2023-11-25In 查询及其优化
     translatorAfrikaansAlbanian-shqipeArabic-‎‫العربية‬‎Armenian-ՀայերէնAzerbaijani-azərbaycancaBasque-euskaraBelarusian-беларускаяBengali-বাংলাBulgarian-българскиCatalan-catalàChi
  • 2023-10-16SELECT COUNT(*) 会造成全表扫描?
    SELECTCOUNT(*)会造成全表扫描?回去等通知吧(qq.com)前言SELECTCOUNT(*)会不会导致全表扫描引起慢查询呢?SELECTCOUNT(*)FROMSomeTable网上有一种说法,针对无where从句的COUNT(*),MySQL是有优化的,优化器会选择成本最小的辅助索引查询计数,其实反而性能最高,这种说法对
  • 2023-10-142023_10_14_MYSQL_DAY_06_MYSQL优化的种类
    MYSQL优化的种类MYSQL的优化,是每一个程序员在做数据查询处理的时候,经常有的步骤那么SQL的优化有很多种,它可以是在硬件方面的,可以是在代码层面的,可以是在数据库方面的优化。下面就详细整理一下30种优化MYSQL的方案:1.在读表的时候,尽可能的避免全表扫描,合理的根据业务需求,在wher
  • 2023-10-12面试官:MySQL数据查询太多会OOM吗
    我的主机内存只有100G,现在要全表扫描一个200G大表,会不会把DB主机的内存用光?逻辑备份时,可不就是做整库扫描吗?若这样就会把内存吃光,逻辑备份不是早就挂了?所以大表全表扫描,看起来应该没问题。这是为啥呢?1、全表扫描对server层的影响假设,我们现在要对一个200G的InnoDB表db1.t,执行一个
  • 2023-09-23慢sql 优化
    确定目标:首先需要确定慢查询的具体原因是什么,可以通过查看MySQL的慢查询日志或者使用性能分析工具进行分析来找出具体的问题。创建索引:索引是提高查询性能的关键。通过创建适当的索引,可以加快查询的执行速度。需要注意的是,不是所有的列都适合创建索引,只有在经常用于查询条件的列上
  • 2023-09-219月11日总结
    慢SQL原因分析之索引失效现象最近收到一个慢sql工单,慢sql大概是这样:“selectxxxfromtabelwheretype=1”。咦,type字段明明有索引啊,为啥是慢sql呢?原因通过执行explain,发现实际上数据库执行了全表扫描,从而被系统判定为慢sql。这时有一定开发经验的同事会说:“字段区分度
  • 2023-09-21慢SQL原因分析之索引失效
    现象最近收到一个慢sql工单,慢sql大概是这样:“selectxxxfromtabelwheretype=1”。咦,type字段明明有索引啊,为啥是慢sql呢?原因通过执行explain,发现实际上数据库执行了全表扫描,从而被系统判定为慢sql。这时有一定开发经验的同事会说:“字段区分度不够,这种字段作单独索引是
  • 2023-08-12在千万级的数据库查询中,如何提高效率?
    1.数据库设计方面a.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。b.应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:selectidfromtwherenumisnull可以在num上设置默认值0,确保表中
  • 2023-08-09MySQL之join
    语法...fromtb1join(innerjoin)tb2oncondition...fromtb1leftjointb2oncondition...fromtb1rightjointb2oncondition...fromtb1fulljointb2oncondition【1】阿里巴巴Java开发手册【强制】超过三个表禁止join。需要join的字段,数据类型必须绝
  • 2023-07-21mysql 生成全表清除sql
    MySQL生成全表清除SQLMySQL是一个非常流行的关系型数据库管理系统,广泛应用于各种Web应用程序和数据驱动的应用程序中。在开发和维护数据库时,有时需要清空表中的所有数据,以便重新开始或进行测试。本篇文章将介绍如何使用MySQL生成全表清除SQL的方法,并提供相应的代码示例。方法一:
  • 2023-07-17mysql 更新时where条件缺失导致更新全表问题
    1、问题更新时where条件缺失导致更新全表问题2、错误sqlupdateorderset`status`=1in('XX001','XX002','XX003');错误分析:更新整个order表,并没有限制更新的范围。原因是这个SQL语句在IN子句中没有提供任何条件,导致MySQL将IN子句视为一个包含了所有order_id值的列表。
  • 2023-07-13sql优化
    一、有索引而未被用到:1、Like的参数以通配符%开头时,数据库引擎会放弃使用索引而进行全表扫描。以通配符开头的sql语句,是全表扫描,没有使用到索引,不建议使用:explainselect*fromteacherwheretnamelike'%10';不以通配符开头的sql语句,使用到了索引,是有范围的查找:explainselect
  • 2023-07-03mysql的update更新及delete删表记录where不带索引字段导致死锁
    为什么会发生这种的事故?InnoDB存储引擎的默认事务隔离级别是「可重复读」,但是在这个隔离级别下,在多个事务并发的时候,会出现幻读的问题,所谓的幻读是指在同一事务下,连续执行两次同样的查询语句,第二次的查询语句可能会返回之前不存在的行。因此InnoDB存储引擎自己实现了行锁,通过
  • 2023-06-19一次有意思的错选执行计划问题定位(涉及SYS_OP_C2)
    这两天和广分的兄弟看了一个问题,比较有意思,过程也比较曲折。。。问题现象:1.11g的库,话说有一个应用程序新上线,应用中使用了绑定变量的方式执行一条简单的SQL,例如selectafrombwherec=:x,c列是该表复合主键的前导列,表定义是varchar2类型,从spotlight监控看这条SQL的执行计划是全
  • 2023-05-19记一次 Oracle 下的 SQL 优化过程
    1.介绍事情是这样的,UAT环境的测试小伙伴向我扔来一个小bug,说是一个放大镜的查询很慢,转几分钟才出数据,我立马上开发环境试了一下,很快啊我说
  • 2023-05-16MYSQL因IN的范围太大导致索引失效问题
    背景最近发现有个用于统计的门店串码激活数量的SQL特别慢,将其摘出来大致如下SELECTa.sku_idasskuId,a.store_idasstoreId,count(*)assaleQtyFROMall_imei_infoawherea.activated_time>=1675530000000anda.activated_time<=1675616399999anda.stor
  • 2023-05-10如何优化一条MySQL查询
    概览1、合理建立索引。在合适的字段上建立索引,例如在where和orderby命令上涉及的列建立索引。可以为经常查询的字段、排序字段和关联查询字段创建索引,但不能滥用索引。索引的过多、过少或者不恰当都会影响查询效率。2、索引优化。防止不走索引,或者走错索引3、分析是否是偶发问
  • 2023-04-13SpringBoot 集成 MybatisPlus 八——插件
    1Mybatis插件机制Mybatis插件是对Executor、StatementHandler、ParameterHandler、ResultSetHandler这四个接口上的方法进行拦截,利用JDK动态代理机制,为这些接口的实现类创建代理对象,在执行方法时,先去执行代理对象的方法,从而执行自己编写的拦截逻辑。ExecutorMyBatis的内部执行器
  • 2023-04-12SELECT COUNT(*) 会造成全表扫描?回去等通知吧
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~Github地址如果访问不了Github,可以访问gitee地址。gitee地址前言SELEC
  • 2023-03-27SqlServer(七)数据库优化
    1、对查询进行优化,尽量避免全表扫描(select*fromTable),首先考虑在where及OrderBy使用的列加索引。2、尽量避免在where语句中对字段进行null值条件搜索,否则将导致