高性能的MySQL(2)慢查询

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

一、剖析MySQL查询

1、首先从慢查询开始,慢查询是开销最低,精度最高的测量查询时间的工具。

a、开始mysql的慢查询,修改my.conf

1
2
3
4
5
6
7
8
9
10
11
[mysqld]
#开启慢查询
log_slow_queries = ON
#指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log
log-slow-queries =  /usr/local/mysq/var/slowquery .log
#记录超过的时间,默认为10s
long_query_time = 1
#log下来没有使用索引的query,可以根据情况决定是否开启
log-queries-not-using-indexes
#执行速度较慢的管理命令(比如OPTIMEZE TABLE)也会被记录
log-slow-admin-statements

b、查看当前信息

155531979.png

c、写存储过程,生成一个500W记录的表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#生成随机字符串函数,在存储过程中调用
delimiter $$
create  function  rand_string(n  int returns  varchar (255)
begin
declare  chars_str  varchar (100)  default  'abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' ;
declare  return_str  varchar (255)  default  '' ;
declare  int  default  0;
while i<n do
set  return_str = concat(return_str, substring (chars_str,floor(1+rand()*52),1));
set  i = i + 1;
end  while;
return  return_str;
end
$$
delimiter ;
#生成随机数字,在存储过程中调用
delimiter $$
create  function  rand_num()  returns  int (5)
begin
declare  int  default  0;
set  i = floor(10+rand()*500);
return  i;
end
$$
delimiter ;
#定义存储过程
delimiter $$
create  procedure  insert_emp(start  int (10),max_num  int (10))
begin
declare  int  default  0;
set  autocommit = 0;
repeat
set  i = i+1;
insert  into  emp  values ((start+i),rand_string(6), 'SALESMAN' ,0001,2000,400,rand_num(),curdate());
until i = max_num
end  repeat;
end
$$

d、查看表数据

162428446.png

e、生成一条慢查询

163504167.png

f、查看日志,会有一条这样的记录

1
2
3
4
5
# Time: 131010 16:31:11
# User@Host: root[root] @ localhost []
# Query_time: 1.045439  Lock_time: 0.000057 Rows_sent: 1  Rows_examined: 5000000
SET timestamp=1381393871;
select  * from emp where  id =1000000;






















本文转自shayang8851CTO博客,原文链接:http://blog.51cto.com/janephp/1306928,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
关系型数据库 MySQL 索引
mysql之开启慢查询日志
mysql之开启慢查询日志
|
15天前
|
SQL 缓存 关系型数据库
mysql性能优化-慢查询分析、优化索引和配置
mysql性能优化-慢查询分析、优化索引和配置
80 1
|
7天前
|
存储 运维 关系型数据库
高性能 MySQL 第四版(GPT 重译)(四)(2)
高性能 MySQL 第四版(GPT 重译)(四)
42 4
|
7天前
|
存储 缓存 关系型数据库
高性能 MySQL 第四版(GPT 重译)(三)(1)
高性能 MySQL 第四版(GPT 重译)(三)
53 4
|
2月前
|
SQL 关系型数据库 MySQL
MySQL - 慢查询优化
MySQL - 慢查询优化
|
2月前
|
存储 关系型数据库 MySQL
《高性能Mysql》学习笔记(二)
《高性能Mysql》学习笔记(二)
136 0
|
2月前
|
存储 SQL 关系型数据库
《高性能Mysql》学习笔记(一)
《高性能Mysql》学习笔记(一)
94 0
|
3月前
|
SQL 关系型数据库 MySQL
MySQL SQL性能分析 慢查询日志、explain使用
MySQL SQL性能分析 慢查询日志、explain使用
98 0
|
3月前
|
关系型数据库 MySQL 分布式数据库
PolarDB MySQL标准版:低成本高性能的数据库解决方案
PolarDB MySQL标准版:低成本高性能的数据库解决方案 随着数字化时代的到来,企业对于数据处理的需求越来越高,而数据库作为数据处理的核心,其性能和成本成为了企业关注的焦点。阿里云全新推出的PolarDB MySQL标准版,以全新的架构和优化,为企业提供了高性能、低成本的数据库解决方案。
129 2
|
3月前
|
Cloud Native 关系型数据库 MySQL
PolarDB MySQL企业版:云原生架构,超高性能与可靠性的完美结合
在数字化时代,数据已成为企业的核心资产。对于现代企业来说,选择一款高性能、高可靠性、高性价比的数据库至关重要。阿里巴巴自研的云原生HTAP数据库——PolarDB MySQL企业版,正是这样一款满足企业需求的理想选择。
388 1