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如何进行架构设计及数据切分等方面来说明这个问题. 服务器物理硬件的优化 在 ...
随机推荐
- C# 实现 Hyper-V 虚拟机 管理
原文:C# 实现 Hyper-V 虚拟机 管理 Hyper-V WMI Provider 工具类如下: "; break; } return status; } } /// <summ ...
- How to: Installshield做安装包时如何添加文件
原文:How to: Installshield做安装包时如何添加文件 我一直以为这不是一个问题,可是没想到在几个群内,对于如何向安装包添加文件不解的大有人在,今日稍暇,整理成篇,以供参考 首先我想再 ...
- 如何让Gridview在没有数据的时候显示表头(asp.net)
原文:如何让Gridview在没有数据的时候显示表头(asp.net) 1.前言 当对GridView控件进行数据绑定时,如果绑定的记录为空,网页上就不显示GridView,造成页面部分空白,页面布局 ...
- solr中重跑索引
solr与.net系列课程(八)solr中重跑索引的注意事项 solr与.net系列课程(八)solr中重跑索引的注意事项 我们如果在项目中使用solr,那肯定就是把数据库中的数据跑进solr服务 ...
- ubuntu12.04 内核编译 记录
近期学习linux这门课,做实验要编译系统内核,然后..五一没事就捣鼓了一上午,还好成功了,以下就写下过程吧. 注意:以下过程的有些make 这类的命令 可能要获取权限 1.開始时能够查一下自己如今系 ...
- jQuery插件的编写相关技术 设计总结和最佳实践
原文:http://www.itzhai.com/jquery-plug-in-the-preparation-of-related-technical-design-summary-and-best ...
- ASP.NET MVC中Area的另一种用法
ASP.NET MVC中Area的另一种用法 [摘要]本文只是为一行代码而分享 context.MapRoute("API", "api/{controller}/{ac ...
- asp.net、mvc、ajax、js、jquery、sql、EF、linq、netadvantage第三方控件知识点笔记
很简单,如下: 父页面:(弹出提示框) function newwindow(obj) { var rtn = window.showModalDialog('NewPage.htm','','sta ...
- java中实现与.net的format格式化字符串输出
Java中的格式化字符串 System.out.println(MessageFormat.format("name={0}", "张三")); .net中的格 ...
- asp.net MVC中的AppendTrailingSlash以及LowercaseUrls
asp.net MVC中的AppendTrailingSlash以及LowercaseUrls asp.net MVC是一个具有极大扩展性的框架,可以在从Url请求开始直到最终的html的渲染之间进行 ...