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如何进行架构设计及数据切分等方面来说明这个问题. 服务器物理硬件的优化 在 ...
随机推荐
- Appium Android Bootstrap源码分析之启动运行
通过前面的两篇文章<Appium Android Bootstrap源码分析之控件AndroidElement>和<Appium Android Bootstrap源码分析之命令解析 ...
- EXCEL导入GridView,然后再汇入数据库.
原文:EXCEL导入GridView,然后再汇入数据库. 近日项目中有一个多笔料号要输入,我做了一个用javascript复制输入框的功能,可以输入多笔料号. 但是使用者反馈,料号太多,可能几百个料号 ...
- jquery.validate 以alert方式显示错误方法
$.validator.setDefaults({ submitHandler: function() { alert("submitted!");return false; } ...
- 在ubuntu下使用eclipse来调试ARM程序
该程序为外部Makefile project,导入到eclipse中来进行编译,之后使用Jlink来进行调试. 这个是因为你在编译的时候没有加-g这个标志,导致没有生成调试文件. 让你指定一个源文件. ...
- 免费的编程中文书籍索引 from github
免费的编程中文书籍索引 免费的编程中文书籍索引,欢迎投稿. 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版. stackoverflow 上的程序员应该阅读的非编程类书籍有哪些 ...
- wcf事务(随记)
----------------------------------------------------wcf事务:1.ACID:原子性.一致性.隔离性.持久性:2.事务:添加命名空间(using S ...
- idea执行go
因为经常在不同的地方调代码,每次都调整环境很麻烦,于是在犯懒的时候发现了更直接简便的办法,关于idea集成go环境的,不需要按部就班的部署. 首先下代码,比如https://github.com/sa ...
- java中接口之间的继承
最近在读一些源码的时候突然发现了一个很神奇的东西,它的原始形态是这样的: 在这行代码中,BlockingDeque.BlockingQueue和Deque是三个接口.刚发现这个问题时,我是十分吃惊的, ...
- 【推荐分享】大量Python电子书籍教程pdf合集下载
网上搜集的,点击即可下载,希望提供给有需要的人^_^ O'Reilly.Python.And.XML.pdf 2.02 MB OReilly - Programming Python 2nd. ...
- 开发框架(OrchardNoCMS)--BootStrap
基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)--BootStrap 按照几个月之前的计划,也应该写一个使用Bootstrap作为OrchardNoCMS的UI库.之前这 ...