首页 > 数据库 >mysql性能剖析与优化1

mysql性能剖析与优化1

时间:2023-05-13 20:13:02浏览次数:37  
标签:slow log 查询 剖析 orderform mysql 优化 select

学习目标:

  • 了解mysql的索引和什么是慢查询
  • 掌握如何配置mysql的my.cnf文件
  • 观测都市商城的数据库性能,找到性能不足的语句
  • Jmeter的jdcb协议
select count(*) from sq_orderform;
select ID from sq_orderform;
-- id主键自带唯一性索引   0.58s
select * from sq_orderform;
--会查询所有的列,速度最慢    8s  

select addTime from sq_orderform;    4s

select ID from sq_orderform where id=32768;
有where条件速度相当更快

1683969352793

和主键都是有索引的,相对没有索引的字段搜索起来更快

有where条件的比没有的搜索更快

查询的列更少的比查询多列的更快

匹配搜索的比准确搜索的更慢

mysql table locks 临时性锁表(绿色) 等待式锁表(黄色)

查询是可以异步的(多人一起进行查询) 增删改只能一个人来操作,事务在进行增删改时mysql会临时性锁表,等这个操作完成或回滚后,才能继续运行,所以临时性的锁表是正常的

慢查询

超过一定时间,用户无论容忍,

看项目在做业务时,看mysql slow queries是否出现很慢的情况,高的峰值代表查询时间较长,需要去优化

top看cpu的时候,最大是400,使用其他的看最大是100

1683976093724

多久算慢查询,去mysql的my.cnf文件去配置定义

配置my.cnf


vim /etc/my.cnf,如果服务器上没有这个文件,新建一个(有的mysql版本没有这个文件)
log_output=table,file  选择记录慢查询的方式,table表示记录在某张表,file表示记录在文件
slow_query_log=1    是否打开慢查询日志,1打开,0关闭
slow_query_log_file=/var/log/slow_log   记录慢查询的日志的位置
long_query_time=1   慢查询的阈值,单位为秒     超过这个值就算慢查询
log_queries_not_using_indexes=1   是否记录未使用索引的情况,0代表不记录,1代表记录
max_connections=512     最大连接数,有默认值.线程连接数,项目经理和数据架构师工程师来定
配置完成之后,重启mysql
service mysqld restart  有的linux用的是service mysql restart,有的是systemctl restart mysqld





看有哪些数据是慢查询

-- date(start_time)慢查询的发生时间 select * from mysql.slow_log where date(start_time)='2022-05-13' order by start_time desc;

标签:slow,log,查询,剖析,orderform,mysql,优化,select
From: https://www.cnblogs.com/jiangxuling/p/17398072.html

相关文章

  • MySQL开窗函数
    MySQL开窗函数知识点三种开窗函数:row_number(),rank(),dense_rank()这三种函数都是用于返回结果集的分组内每行的排名区别:row_number():特点是唯一且连续,如果四个人是按成绩排名,那么是1234这样排的,即使有重分的人 rank():特点是并列不连续,如果四个人是按成绩排名,那么......
  • 基于麻雀搜索算法优化回声状态网络(SSA-ESN)的数据回归预测 matlab
    基于麻雀搜索算法优化回声状态网络(SSA-ESN)的数据回归预测matlab代码ID:2829642902896363......
  • MySQL-简单总结
    部分概念:1、在数据库中产生数据不一致的根本原因是冗余2、一个事务对某数据加S锁后,其它的事务不能对该数据加任何类型的锁(错误):所谓S锁,是事务T对数据A加上S锁时,其他事务只能再对数据A加S锁,而不能加X锁,直到T释放A上的S锁3、一个数据库只有一个模式和一个内模式4、使某个事务......
  • MySQL学习日志五,外键与DML语言
    外键准备一个表,gradeid作为外键CREATETABLE`grade`( `gradeid`INT(10)NOTNULLAUTO_INCREMENTCOMMENT'年级id', `gradename`VARCHAR(50)NOTNULLCOMMENT'年级名称', PRIMARYKEY(`gradeid`))ENGINE=INNODBDEFAULTCHARSET=utf8创建生成的表方法一:在......
  • Window环境下Java备份和恢复Mysql数据
    ***java执行代码中必须加cmd/cProcessexec=Runtime.getRuntime().exec("cmd/cmysqldump-uroot-p123456xxl_job>e:/home/jobbak.sql");Processexec1=Runtime.getRuntime().exec("pingwww.baidu.com");BufferedReaderbufferedReader=newBuf......
  • 【电力系统】基于遗传算法优化BP神经网络实现电路参数优化附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • Mysql union和union all用法
    我们经常会碰到这样的应用,两个表的数据按照一定的查询条件查询出来以后,需要将结果合并到一起显示出来,这个时候就需要用到union和unionall关键字来实现这样的功能,union和unionall的主要区别是unionall是把结果集直接合并在一起,而union是将unionall后的结果镜像一次distinct,去除......
  • mysql用户表root用户被锁定,无法登陆(Account is locked)
    今天看到mysql的user表就打开了看看,看到root还有些权限是N,然后顺手就改成了Y,结果保存之后就凉凉了,数据库就打不开了,报“Accountislocked”这个错误,上网排查了好半天才解决,解决方法记录一下。解决思路:1、使用skip-grant-tables跳过密码验证,此时可以打开MySQL服务并登录2、......
  • MySql的数据存储之B+树(浅谈)
    一.MySql的实际存储位置B+树是MySql数据结构的主流存储方式,包括InnoDB和MYISAM引擎,它们的默认存储结构都是B+树了解B+树前,我们先要知道MySql的实际存储位置在哪?有人会说它存在我么的D盘或C盘的MySql文件夹的Data目录里,这个回答没错,我们在深入的了解一下呢?不管是在个人电脑上......
  • MySQL多列字段去重的案例实践
    作者:刘晨网名bisal,具有十年以上信息系统建设经验,目前主要从事数据库应用研发能力提升和技术管理方面的工作,OracleACE(Alums),腾讯云TVP,墨天轮MVP,拥有OracleOCM&OCP、EXINDevOpsMaster、SCJP、OBCA、腾讯云CloudLite、PCSD、GDCA等技术认证,国内首批OracleYEP成员,OCMU成......