首页 > 数据库 >mysql慢sql优化思路

mysql慢sql优化思路

时间:2024-10-17 16:59:11浏览次数:8  
标签:sql 查询 连表 索引 mysql 思路 大表

  1. 开启慢sql查询配置,或使用云服务厂商的慢sql统计,找到慢sql
  2. 看下是不是使用了select *,如果是的话,改为查找字段,因为这样可以避免优化器去解析字段,单次查询可能效果不明显,但是一旦并发上来以后,这个就比较明显了,还有就是减少网络IO的消耗
  3. 看下对应的数据量级,如果连表的话,是不是小表驱动大表,小标驱动大表可以使用到join buffer,如果是大表驱动小表的话,数据量一大,没办法单次join buffer,就会导致查询慢
  4. 看下连表的字段或者条件的字段,都有没有走索引,是不是上线的时候漏加了索引,查询字段尽量保证索引覆盖。
  5. 用explain查一下执行计划,看下有没有走索引。
  6. 看下是不是有深分页的问题,偏移量大的情况下,查询会慢,可以使用id限定的方式提高效率,就是使用id>xxx作为其中一个条件,缩减扫描条数

标签:sql,查询,连表,索引,mysql,思路,大表
From: https://www.cnblogs.com/alvisClub/p/18472696

相关文章

  • 【2024华为OD-E卷-100分-内存资源分配】(题目+思路+Java&C++&Python解析+在线测试)
    在线评测链接题目描述有一个简易内存池,内存按照大小粒度分类,每个粒度有若干个可用内存资源,用户会进行一系列内存申请,需要按需分配内存池中的资源返回申请结果成功失败列表。分配规则如下:分配的内存要大于等于内存的申请量,存在满足需求的内存就必须分配,优先分配粒度小的......
  • CitrixSQL Server 2016高可用之SQL镜像 SQL Server mirror 带见证服务器
    CitrixSQLServer2016高可用之SQL镜像SQLServermirror带见证服务器原来写过SQL-2008的镜像教程,时过境迁,现在流行2016了,当然也是因为自己常常用到这个功能,写下来SQL的镜像方法帮助不会的朋友。这个教程对于SQL2008\2012\2016以及2017都是可用的。三台SQL服务器,都安装好SQL软......
  • CitrixWindows SQL Server2016安装教程 SQL管理工具SSMS安装
    CitrixWindowsSQLServer2016安装教程SQL管理工具SSMS安装   ......
  • 2024/10/17日 日志 --》关于MySQL中的 约束、多表查询的初步学习笔记与整理
    今天推进了关于约束以及多表查询的内容,下一步是事务以及关于连接数据库JDBC的学习。点击查看代码----约束--1.概念:--·约束是作用于列上的规则用于限制加入表的数据--·约束的存在保证了数据库中数据的正确性、有效性和完整性--2.约束的分类--非空约束NOTNULL:......
  • 一文彻底弄懂mysql的事务日志,undo log 和 redo log
    在数据库事务管理中,UndoLog和RedoLog是两种关键日志,用于保障事务的原子性和持久性。它们的作用是确保数据库在出现崩溃、断电、宕机等故障时,能够进行恢复操作,从而保障数据一致性和完整性。它们通常用于支持事务的ACID特性中的原子性和持久性。下面将分别介绍UndoLo......
  • 【MySQL】[HY000][1366] Incorrect string value: ‘\xE4\xB8\xA4\xE6\x95\xB0.
    问题描述在导入中文数据时遇到错误。[2024-10-1610:49:49][HY000][1366]Incorrectstringvalue:'\xE4\xB8\xA4\xE6\x95\xB0...'forcolumn'title'atrow1尝试将某些数据插入到名为’title’的列时,遇到了不正确的字符串值。原因分析MySQL5.7创建数据库的默......
  • MySQL 【日期】函数大全(六)
    目录1、TIME_FORMAT() 按照指定的格式格式化时间。2、TIME_TO_SEC() 将指定的时间值转为秒数。3、TIMEDIFF() 返回两个时间之间的差值。4、TIMESTAMP() 累加所有参数并将结果作为日期时间值返回。5、TIMESTAMPADD() 将指定的时间间隔加到一个日期时间值上并返回结果......
  • 解决`GLIBCXX_3.4.29‘ not found的正确思路
    重新安装完rasa,运行rasatrain的时候,很无奈地遇到了“/lib/arm-linux-gnueabihf/libstdc++.so.6:version`GLIBCXX_3.4.29'notfound”报错。立马上网查找解决方案,结果大多数都是让我下载一个编译好的libstdc++.so.6.29,然后做一个软连接。我是树莓派3B+,属于armhf,还不能直接......
  • oracle和hive之间关于sql的语法差异及转换
    目录前言1、oracle中的(+)写法1.1、区分左右连接1.2、hive中的写法a、最常用b、副表带条件c、只显示过滤条件的数据2、select中含有子查询3、oracle的decode函数4、oracle的时间转化5、oracle的trunc函数6、oracleinstr函数 7、截取7、临时表名8、with插入用法......
  • MySQL大数据量表添加字段
    方法1:复制表的方式1.创建临时表account_bill_tempcreatetableaccount_bill_templikeaccount_bill;2.在新表中添加字段altertableaccount_bill_tempaddcolumubill_idvarchar(64)comment'账单id'afterbill_amount;3.把旧表中的数据迁移到新表中insertintoac......