慢查询

首先,无论进行何种优化,开启慢查询都算是前置条件。慢查询机制,将记录过慢的查询语句(事件),从而为DB维护人员提供优化目标。

检查慢查询是否开启

通过show variables like 'slow_query_log'这条语句,可以找到慢查询的状态(On/Off)。

开启慢查询

本文使用的MySQL版本:MariaDB - 10.1.19,请注意,不同版本的MySQL存在差异。

在[mysqld]下加入:

[mysqld]
port= 3306slow-query-log=1 # 慢查询:确认开启
slow-query-log-file="D:/xampp/mysql/log/mysql-slow.log" # 慢查询:日志文件及路径
long_query_time = 5 # 慢查询:指定超过5s仍未完成的语句,为执行过慢的语句

优化步骤

观察日志,锁定需要优化的目标语句。注意SQL的设置,譬如:SQL_NO_CACHE

关注复杂语句写法。复杂语句本身具备高自由度,再加上SQL语法的特殊性,导致了不同的写法的同功能复杂语句,可能具备云泥之别的效率。

明确应用场景,尽管我们在各种场合都有原则,但实际上,如果能够明确应用场景,我们能够针对当前情况,做出本地化的高效优化。

无法优化的语句,当我们通过上述两种方法,以及更多未被本文提及的优化方法之后,可能还是会面对优化失败的情况。业务层面不做出修正的话,数据层面的确是无力可使。

结语

当打出“无法优化”的时候,不禁想到了我所喜爱的游戏设计行业。

如果你了解一二,就会发现,游戏设计中,其实有相当多的优秀设计,但大多数都困窘于当时当地的技术水平,而无法实现多彩纷呈的游戏设计。

也还记得去年做UI的朋友跟我吐槽:我就怕我设计的出来,很炫酷或者很人文,可前端根本实现不了那种设计。

简单谈谈MySQL优化利器-慢查询相关推荐

  1. mysql慢查询检查流程_简单谈谈MySQL优化利器-慢查询

    慢查询 首先,无论进行何种优化,开启慢查询都算是前置条件.慢查询机制,将记录过慢的查询语句(事件),从而为DB维护人员提供优化目标. 检查慢查询是否开启 通过show variables like ' ...

  2. 谈谈mysql优化_浅谈MySQL SQL优化

    本文首发于个人微信公众号<andyqian>,期待你的关注 前言 有好几天没有写文章了,实在不好意思.之前就有朋友希望我写写MySQL优化的文章.我迟迟没有动笔,主要是因为,SQL优化这个 ...

  3. MySQL优化三:查询性能优化之基础部分

    前面文章中介绍了如何设计最优的库表结构.如何建立最好的索引,这些对于高性能来说是比不可少的.但这些还不够:还需要合理的设计查询.如果查询写得很糟糕,即使库表结构在合理.索引在合适,也无法实现高性能.查 ...

  4. MySQL多重条件模糊查询_简单实现mysql多字段模糊查询

    在后台的项目中,会经常遇到,就是信息的查找,这里就举个简单的例子,如搜索某一个产品的信息,在一个表里面有多个字段,而搜索的内容可能是其中的某个字段,这样只有多字段查询才能实现. MySQL多字段模糊查 ...

  5. mysql 优化器关联查询_MySQL 查询优化器(二)

    1.6多个查询字段(常量条件) 多个查询字段的查询处理逻辑如下所示: JOIN:prepare阶段 setup_tables():同1.1测试. setup_fields():同1.1测试. setu ...

  6. Mysql优化_慢查询开启说明及Mysql慢查询分析工具mysqldumpslow用法讲解

    Mysql慢查询开启 Mysql的查询讯日志是Mysql提供的一种日志记录,它用来记录在Mysql中响应时间超过阈值的语句,具体指运行时间超过long_query_time值得SQL,则会被记录到慢查 ...

  7. 简单介绍MySQL插入数据与查询数据

    这篇文章主要介绍了 MySQL插入数据与查询数据,缺省插入.缺省插入.缺省插入等各种数据插入分享,需要的小伙伴可以参考一下,希望对你有所帮助 一.插入数据 insert into 表名 (列1,... ...

  8. mysql loose_简单谈谈MySQL的loose index scan

    众所周知,InnoDB采用IOT(index organization table)即所谓的索引组织表,而叶子节点也就存放了所有的数据,这就意味着,数据总是按照某种顺序存储的.所以问题来了,如果是这样 ...

  9. mysql int()_简单谈谈MySQL中的int(m)

    我们在设计表的时候,如果碰到需要设置int(整型)的时候,通常会按照惯例(大家都这样写)设置成int(11).那么这里为什么是11呢?代表的又是什么呢? 以前我一直以为这里是在限制int显示的宽度,后 ...

  10. mysql 跳表 b 树_简单谈谈Mysql索引与redis跳表

    摘要 面试时,交流有关mysql索引问题时,发现有些人能够涛涛不绝的说出B+树和B树,平衡二叉树的区别,却说不出B+树和hash索引的区别.这种一看就知道是死记硬背,没有理解索引的本质.本文旨在剖析这 ...

最新文章

  1. Cisco 设备设置监控口
  2. 在IIS上建立WAP网站的图文方法
  3. pyc文件反编译为py文件
  4. REMOTE HOST IDENTIFICATION HAS CHANGED
  5. 老师“鬼话”全曝光!哈哈哈哈哈全国的老师都这样吗?
  6. javamail “535 5.7.3 Authentication unsuccessful“ 问题排查
  7. 树莓派 鼠标延迟问题【Linux】
  8. mysql视图可以完成的操作_MySQL视图操作
  9. sublime livereload插件
  10. CSDN用户数据库泄露事件给我们的启示
  11. 开票软件V2.0.49_ZS_20220630开票接口
  12. 大牛讲堂 | 深度学习Sequence Learning技术分享
  13. navicat下载安装
  14. Linux配置VNC远程桌面
  15. 计算机专业普通的期刊,计算机类的普通期刊
  16. 如何将mp4视频格式转换成mov视频
  17. 网站443端口经常受到攻击怎么办
  18. 新时达工业机器人技术储备_国内外工业机器人发展现状-工业机器人技术国内外发展现状与趋势...
  19. Qt VTK软件开发问题学习记录
  20. 理解MySQL复制(Replication)

热门文章

  1. 如虎添翼VSPHERE 4/5 环境下 linux/windows 动态扩展磁盘
  2. 提示wininet.dll文件找不到的解决
  3. vmcore经典案例(hardlockup、softlockup、读写锁、hung、oom)
  4. Android UI学习之EditText
  5. oracle 无法套取,mycat-oracle报java.sql.SQLException: 无法从套接字读取更多的数据
  6. dubbo kryo序列化_Java后端精选技术:序列化框架的选型和比对
  7. VPP 命令总结(持续更新)
  8. 关于USB-Audio(USB麦克风)设备的录音验证
  9. STM32相关问题解决方法
  10. H.264中整数DCT变换,量化,反量化,反DCT究竟是如何实现的?(无代码,无真相)