Mysql监控及优化
一、Mysql连接数
1、配置Mysql连接数:
vim /etc/my.cnf [mysqld]下面修改
max_connections=1000 不写默认为100。
wait_timeout=60 设置超时时间
2、查看当前连接数:
show status like '%Threads_connected%';

show processlist;

二、Mysql缓存
1、开启缓存:
vim /etc/my.cnf mysqld下面添加或修改
query_cache_type=on #开启缓存
query_cache_size=10M #缓存总大小
query_cache_limit=1M #查询结果超过设置值,就不会缓存
需重启mysql服务生效。
2、查看缓存状态:
SHOW VARIABLES LIKE '%query_cache%';

3、开启profile:
set @@profiling=1; 设置profile开启
select @@profiling; 查看profile是否开启
show profiles; 查看所有的profile

show profile for query 9; 查看指定的sql语句消耗的时间


可以看出:同样的sql语句,第9条是首次查询消耗时间,耗时比较长,第10条是从缓存查询消耗时间,耗时明显比较短。
注:1、select语句必须完全相同才会从走缓存,例如:大小写不一样,虽然查询结果一样,但是不会走缓存。
2、任何一个包含不确定的函数(比如:now(),current_date())的查询不会被缓存。
4、queryCache使用状态:
SHOW STATUS LIKE 'Qcache%';

Query Cache 命中率= Qcache_hits / ( Qcache_hits + Qcache_inserts );
Qcache_free_blocks Query Cache中目前还有多少剩余的blocks。如果该值显示较大,则说明Query Cache 中的内存碎片较多了,可能需要寻找合适的机会进行整理。如果这个值非常大,可以使用FLUSH QUERY CACHE;语句来清理查询缓存碎片以提高内存使用性能。该语句不从缓存中移出任何查询。
5、查询语句生命周期:
1.Mysql服务器监听3306端口
2.验证访问用户
3.创建Mysql线程
4.检查内存(qcache)
5.解析SQL
6.生成查询计划
7.打开表
8.检查内存(Buffer Pool)
9.到磁盘读取数据
10.写入内存
11.返回数据给客户端
12.关闭表
13.关闭线程
14.关闭连接
三、innodb 存储引擎
1、开启innodb_buffer_pool
vim /etc/my.cnf mysqld 下面添加或修改
innodb_buffer_pool_size=20M #设置bufferpool大小
innodb_buffer_pool_dump_now=on #默认为关闭OFF。如果开启该参数,停止MySQL服务时,InnoDB将InnoDB缓冲池中的热数据保存到本地硬盘。
innodb_buffer_pool_load_at_startup = on #默认为关闭OFF。如果开启该参数,启动MySQL服务时,MySQL将本地热数据加载到InnoDB缓冲池中。
2、查看Innodb_buffer_pool状态
SHOW VARIABLES LIKE '%innodb_buffer_pool%';

SHOW STATUS LIKE '%Innodb_buffer_pool%';

4、 自动提交
set @@autocommit=0; #关闭自动提交,仅对当前用户有效
select @@autocommit; #查看自动提交是否开启
commit; #提交执行语句
5、锁:
show processlist; #查看当前锁定sql

注:如果修改的数据条件是索引列,则是行级锁,否则就是表级锁。
四、慢查询
1、查询慢查询日志是否开启
SHOW VARIABLES LIKE '%query%';

2、慢查询日志设置(执行命令)
set global slow_query_log=on; #开启慢查询日志
set global long_query_time=1; #设置记录查询超过多少秒的Sql存入慢查询
set global slow_query_log_file='/opt/data/slow_query.log'; #设置慢查询日志路径,此路径需要有写入权限
3、解析慢查询日志
mysqldumpslow -s t -t 10 -g 'select' /opt/lampp/var/mysql/xiaoxitest-slow.log

4、使用EXPLAIN/DESC 查看Sql效率
EXPLAIN update user set age=11 where id=1;
DESC update user set age=11 where id=1;

type列:依次从最差到最优
all<index<range<ref<eq_ref<const,system<null
Mysql监控及优化的更多相关文章
- Mysql监控、优化
一.查询语句的生命周期 1.MYSQL服务器监听3306端口 2.验证访问用户 3.创建MySQL线程 4.检查内存(Qcache),当查询命中缓存,MYSQL立刻返回结果,跳过解析.优化.执行阶段. ...
- 性能测试之mysql监控、优化
我们在做性能测试的目的是什么,就是要测出一个系统的瓶颈在哪里,到底是哪里影响了我们系统的性能,找到问题,然后解决它.当然一个系统由很多东西一起组合到一起,应用程序.数据库.服务器.中中间件等等很多东西 ...
- mysql 监控及优化——转载自http://www.cnblogs.com/suansuan/
1.Mysql连接数 Mysql默认最大连接数为100. 设置Mysql的最大连接数,在Mysql的配置文件中增加: max_connections = 1000 #Mysql的最大连接数,默认如 ...
- mysql监控和优化(2)
mysql主从复制 3个线程完成复制:主库1个线程负责记录数据库变更日志从库1个线程负责拉取主库的变更日志从库1个线程负责执行主库的变更日志实现了获取事件和重放事件的解耦,允许异步进行.复制的瓶颈:主 ...
- 数据库Mysql监控及优化
在做 性能测试的时候数据最重要,数据来源于哪里呢,当然是数据库了,数据库中,我们可以知道,数据从磁盘中要比从缓存中读取数据的时间要慢的多的多,还可以知道,同样的一个sql语句,执行的效率也不一样,这是 ...
- 京东MySQL监控之Zabbix优化、自动化
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wangwei007.blog.51cto.com/68019/1833332 随 ...
- MySql监控优化
MySQL监控 MySQL服务器硬件和OS(操作系统)调优: 1.有足够的物理内存,能将整个InnoDB文件加载到内存里 —— 如果访问的文件在内存里,而不是在磁盘上,InnoDB会快很多. ...
- MySQL数据库性能优化与监控实战(阶段四)
MySQL数据库性能优化与监控实战(阶段四) 作者 刘畅 时间 2020-10-20 目录 1 sys数据库 1 2 系统变量 1 3 性能优化 1 3.1 硬件层 1 3.2 系统层 1 3.3 软 ...
- MYSQL数据库的优化
我们究竟应该如何对MySQL数据库进行优化?下面我就从MySQL对硬件的选择.MySQL的安装.my.cnf的优化.MySQL如何进行架构设计及数据切分等方面来说明这个问题. 服务器物理硬件的优化 在 ...
随机推荐
- POJ 3071-Football(可能性dp)
Football Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3145 Accepted: 1591 Descript ...
- sql点滴40—mysql乱码问题总结
原文:sql点滴40-mysql乱码问题总结 本文将为大家讲解如何处理Java连接过程中的MySQL中文乱码问题.一般MySQL中文乱码问题都是与字符集有关,这里作者的经历也大致差不多. MySQL默 ...
- QT Creater与libusb使用
新建一个C项目,然后修改.pro文件,添加LIBS一行 TEMPLATE = app CONFIG += console CONFIG -= app_bundle CONFIG -= qt LIBS ...
- HP quality center 9.0 邮件设置
[转载]HP quality center 9.0 邮件设置 (2010-09-20 10:28:03) 转载▼ 标签: 转载 原文地址:HP quality center 9.0 邮件设置作者: ...
- JavaScript实例技巧精选(13)—计算在网页上的停留时间
>>点击这里下载完整html源码<< 这是截图: 核心代码如下: <SCRIPT LANGUAGE="JAVASCRIPT"> <!-- ...
- MVC与Validate验证提示的样式修改
MVC中使用Validate的验证,要修改错误提示样式一共有3处需要修改,否则就不太完美了: MVC中的Validate的验证机制只用在后台写一次,就可以完成前台和后台的完美验证,前台的验证主要是依靠 ...
- 在Visual Studio中Git的基本使用
什么是Git Github : https://github.com/git Pro Git: http://git-scm.com/book Git 是一款免费的.开源的.分布式的版本控制系统.旨在 ...
- Hdu 1016 Prime Ring Problem (素数环经典dfs)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- Excel开发
浅谈Excel开发:九 Excel 开发中遇到的常见问题及解决方法 Excel开发过程中有时候会遇到各种奇怪的问题,下面就列出一些本人在开发中遇到的一些比较典型的问题,并给出了解决方法,希望对大家 ...
- 够快网盘支持与iOS-ASIHTTPRequest框架学习
够快网盘支持与iOS-ASIHTTPRequest框架学习 前段时间在公司的产品中支持了够快网盘,用于云盘存储. 在这个过程中,学习到了很多新的知识,也遇到了很多问题,在此记录一下. 首先就够快的AP ...