慢查询

首先,无论进行何种优化,开启慢查询都算是前置条件。

慢查询机制,将记录过慢的查询语句(事件),从而为DB维护人员提供优化目标。

检查慢查询是否开启

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

开启慢查询

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

在[mysqld]下加入:

[mysqld]

port= 3306

slow-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 variables 大记录 查询 慢_MySQL - 慢查询相关推荐

  1. mysql慢查询记录到表_MySQL慢查询记录原理和内容解析

    原标题:MySQL慢查询记录原理和内容解析 作者:高鹏(网名八怪),<深入理解MySQL主从原理32讲>系列文的作者. 本文为学习记录,可能有误请谅解,也提供了一些源码接口供有兴趣的朋友调 ...

  2. mysql or中有空查询慢_MySQL 慢查询日志

    1.定义 2.相关参数 2.开启 3.原因 4.慢查询日志工具mysqldumpslow 1.定义 作用:用来记录在MySQL中响应时间超过阀值的语句. 2.相关参数 mysql> show v ...

  3. mysql 关联查询慢_mysql慢查询语句分析总结

    我们经常会接触到MySQL,也经常会遇到一些MySQL的性能问题.我们可以借助慢查询日志和explain命令初步分析出SQL语句存在的性能问题 通过SHOW FULL PROCESSLIST查看问题 ...

  4. mysql 查询重写_mysql 学习 - 查询重写规则

    条件化简 我们编写的查询语句的搜索条件本质上是一个表达式,这些表达式可能比较繁杂,或者不能高效的执行,MySQL的查询优化器会为我们简化这些表达式. 移除不必要的括号 有时候表达式里有许多无用的括号, ...

  5. mysql慢查询单位_MySQL慢查询

    MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句.具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢 ...

  6. mysql两个表查询修改_MySQL:查询、修改(二)

    干货: 使用SELECT查询的基本语句SELECT * FROM 可以查询一个表的所有行和所有列的数据.SELECT查询的结果是一个二维表. 使用SELECT *表示查询表的所有列,使用SELECT ...

  7. mysql数据库查询笔记_mysql笔记: 查询

    mysql笔记: 查询 查询准备 CREATE DATABASE search; use search; # 学生表(student):学号.姓名.性别.出生日期.班级 CREATE TABLE st ...

  8. mysql九九查询法_mysql日期查询法

    话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添加的文章总数并且按照时间从大到小排序,则查询语句如下: 02 03 1 sel ...

  9. mysql的sid号怎么查_mysql表查询练习

    准备数据 create table book( id int primary key auto_increment, name varchar(16), price int ); create tab ...

最新文章

  1. 报名 | AI Time:“ 论道自动机器学习与可解释机器学习”
  2. IoC容器Autofac(3) - 理解Autofac原理,我实现的部分Autofac功能(附源码)
  3. 调查与讨论:你在调用别人接口的时候有考虑过失败情况吗?
  4. python中字符串的常见操作方法
  5. php使用mysql怎么连接浏览器_一个简单的php实现的MySQL数据浏览器
  6. VTK:可视化之StreamLines
  7. 《Python Cookbook 3rd》笔记(2.10):在正则式中使用 Unicode
  8. NYOJ 116士兵杀敌(二) 树状数组
  9. 第二场周赛(递归递推个人Rank赛)——题解
  10. SAP License:SAP成本收集器两则
  11. 教你如何零基础备考公务员
  12. TXS0108双向电平转换芯片用于IIC时的问题
  13. chromecast投屏_Google的初代投屏神器Chromecast上手体验
  14. css修改鼠标指针的样式
  15. 使用 电报机器人 tele bot 远程执行服务器上的命令
  16. 如何在三天内使用Thinkphp搭建商城系统(一)
  17. JSP标签的简单使用
  18. 学习bash第二版-前言
  19. 更快学习编程的7个重要技巧
  20. Hyper-V的启动(安装)(Win10系统)

热门文章

  1. css常用样式汇总记录
  2. el-date-picker设置默认日期_ERP入门教程:快速掌握金蝶ERP的基础-物料批次管理的应用及设置...
  3. uboot阅读笔记之cpu工作模式(SVC32)
  4. 傻瓜都能看懂的高并发量服务器架构
  5. c语言链表p-%3enext,课程设计报告.c语言程序设计.pdf
  6. springboot书籍_常见的SpringBoot面试题四
  7. python中格式化_Python中格式化的两种方法
  8. rust油桶用什么打_选什么样的柜子才好用?别再选定制柜了,还是老手艺人打的柜子好...
  9. java swing http请求_JavaWeb核心编程之(三.5)HTTP请求和接受表单数据
  10. python 线程同步_Python并发编程-线程同步(线程安全)