mysql 连接 监控_mysql监控优化(一)连接数和缓存

一、mysql的连接数

MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,连接数少的话,在大并发下连接数会不够用,会有很多线程在等待其他连接释放,就可能会导致数据库连接超时或者响应时间过长,所以需要调整最大连接数。

1、设置mysql的最大连接数,在mysql的配置文件中增加:

max_connections = 1000#mysql的最大连接数,默认如果不写的话是100个

wait_timeout = 10超时时间

2、查看当前有多少个连接

show status like '%Threads_connected%';

show processlist;

二、mysql的缓存。缓存来自两个维度。

缓存1(MySQL层):查询缓存 Query Cache

缓存2(存储引擎层):InnoDB_Buffer_Pool

1、查询缓存Qcache

缓存完整的SELECT查询结果,当查询命中缓存,MySQL会立刻返回结果,跳过解析、优化和执行阶段。

查询缓存会跟踪系统中的每张表,如果这些表发生变化,那么和这张表相关的所有查询缓存全部失效。

查询缓存对应用程序是完全透明的。应用程序无须关心MySQL是通过查询缓存返回的结果还是实际执行返回的结果。事实上,这2种结果是完全相同的。

在检查查询缓存的时候,MySQL不会对SQL进行任何处理,它精确的使用客户端传来的查询(select),只要字符大小写,或者注释有一点点不同,查询缓存就认为是不同的查询。

任何一个包含不确定的函数(比如now(),current_date())的查询不会被缓存。

(1)mysql查询缓存开启需要注意的问题

开启查询缓存对于读写都增加了额外的开销。对于读,在查询开始前需要先检查缓存;对于写,在写入后需要更新缓存。

一般情况这些开销相对较小,所以查询缓存一般还是有好处的。但也要根据业务特征权衡是否需要开启查询缓存。

(2)Qcache参数。查询缓存参数,在mysql配置文件中添加,linux下为my.cnf,windows下为my.ini:

1.query_cache_type = on            是否开启查询缓存,具体选项是off,on

2.query_cache_size = 200M        分配给查询缓存的总内存,一般建议不超过256M

3.query_cache_limit = 1M           这个选项限制了MySQL存储的最大结果。如果查询的结果比这个大,那么就不会被缓存。

(3)查看Qcache状态

查询qcache状态:

SHOW VARIABLES LIKE '%query_cache%';

命令参数列表

have_query_cache 该MySQL 是否支持Query Cache;

query_cache_limit 缓存块大小,超过该大小不会被缓存

query_cache_min_res_unit 每个qcache最小的缓存空间大小

query_cache_size 分配给查询缓存的总内存

query_cache_type 是否开启

query_cache_wlock_invalidate 控制当有锁加在表上的时候,是否先让该表相关的 Query Cache失效

(4)监控Qcache的使用情况

查询qcache当前使用情况:

SHOW STATUS LIKE 'Qcache%';

命令参数列表

Qcache_free_blocks  Query Cache中目前还有多少剩余的blocks。如果该值显示较大,则说明Query Cache 中的内存碎片较多了,可能需要寻找合适的机会进行整理。如果这个值非常大,可以使用FLUSH QUERY CACHE;语句来清理查询缓存碎片以提高内存使用性能。该语句不从缓存中移出任何查询。

Qcache_free_memory  Query Cache 中目前剩余的内存大小

Qcache_hits  缓存命中次数

Qcache_inserts 多少次未命中然后插入

Query Cache 命中率= Qcache_hits / ( Qcache_hits + Qcache_inserts );

Qcache_lowmem_prunes 多少条Query 因为内存不足而被清除出Query

Qcache_not_cached   因为query_cache_type 的设置或者不能被cache 的Query 的数量

Qcache_queries_in_cache  当前Query Cache 中cache 的Query 数量;

Qcache_total_blocks 当前Query Cache 中的block 数量

2、存储引擎层-innodb buffer pool

buffer pool是innodb存储引擎带的一个缓存池,查询数据的时候,它首先会从内存中查询,如果内存中存在的话,直接返回,从而提高查询响应时间。

innodb buffer pool和qcache的区别是:qcacche缓存的是sql语句对应的结果集,buffer pool中缓存的是表中的数据。Buffer pool是设置的越大越好,一般设置为服务器物理内存的70%。

(1)Innodb_buffer_pool参数:

innodb_buffer_pool_size :Innodb_buffer_pool的大小

innodb_buffer_pool_dump_now:默认为关闭OFF。如果开启该参数,停止MySQL服务时,InnoDB将InnoDB缓冲池中的热数据保存到本地硬盘。

innodb_buffer_pool_load_at_startup:默认为关闭OFF。如果开启该参数,启动MySQL服务时,MySQL将本地热数据加载到InnoDB缓冲池中。

(2)查看Innodb_buffer_pool的状态

查询Innodb_buffer_pool状态:

SHOW VARIABLES LIKE '%innodb_buffer_pool%';

命令参数列表

innodb_buffer_pool_size 设置的bp大小

innodb_buffer_pool_filename  热数据文件名称

innodb_buffer_pool_dump_at_shutdown 停止mysq服务时是否自动保存热数据

innodb_buffer_pool_dump_now 启动mysql服务时是否自动读取热数据

(3)监控Innodb_buffer_pool使用情况

查询Innodb_buffer_pool当前使用情况:

SHOW STATUS LIKE '%Innodb_buffer_pool%';

命令参数列表

主要关注的两个参数

Innodb_buffer_pool_read_requests 总共查询bp的次数

Innodb_buffer_pool_reads 从物理磁盘中获取到数据的次数

通过这两个参数我们可以知道bp的命中率

68f724bad5a33d9a9f6bd2ca7369ecb7.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集合框架(一) ----------Map集合遍历的方法

import java.util.*; /** * Map集合遍历的方法 * author Administrator * */public class Test2 { public static void main(String[] args) { Map<String,String> mapnew HashMap<String,String>(); /*Java 提供两种不同的类型&#xff1a; * 引用类型和原始类型&…

mysql事务总结_MySQL数据库和相关事务总结

以下的文章主要向大家描述的是MySQL数据库和相关事务&#xff0c;在实际操作中有很多人都认为MySQL数据库对事务处理是不支持的&#xff0c;其实&#xff0c;只要MySQL数据库版本支持BDB或是InnoDB表类型&#xff0c;那么你的MySQL就具有事务处理的能力。这里面&#xff0c;又以…

please reinstall the mysql distribution_php安装扩展mysqli的实现步骤及报错解决办法

php安装扩展mysqli的实现步骤及报错解决办法terminal#cd php-5.3.6/ext/mysqli#/usr/local/webserver/php/bin/phpize#./configure --with-php-config/usr/local/webserver/php/bin/php-config#make#make instal报错&#xff1a;checking for MySQLi support... yeschecking wh…

day35-hibernate映射 03-Hibernate持久态对象自动更新数据库

持久态对象一个非常重要的能力:自动更新数据库。 package cn.itcast.hibernate3.demo1;import static org.junit.Assert.*;import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.Test;import cn.itcast.utils.HibernateUtils;/*** Hibernate的测…

mysql视图中调用函数写法_从视图中调用函数

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":5,"count":5}]},"card":[{"des":"阿里云函数计算(Function Compute)是一个事件…

微信 小程序 常见错误

VM148:2 pages/aaa/aaa.jsonExpecting STRING,NUMBER,NULL,TRUE,FALSE,{,[, got EOF 意思是 子组件的 json 文件不能为空 至少填一个{} appservice:18 pages/home/home 出现脚本错误或者未正确调用 Page() 原因是没有在相应页面的.js文件中调用Page&#xff08;&#xff09;&am…

mysql 角色管理_MySQL 8 用户和角色管理入门

MySQL 8.0 正式版目前已发布&#xff0c;MySQL 8.0 增加了很多新的功能&#xff0c;具体可参考「MySQL 8.0 正式版 8.0.11 发布&#xff01;」一文。MySQL 8.0 在用户管理方面增加了角色管理&#xff0c;默认的密码加密方式也做了调整&#xff0c;由之前的 SHA1 改为了 SHA2。同…

go 删除 文件 某行_Go实战--用echo嵌入静态资源

生命不止&#xff0c;继续 go go go !!!使用 Go 开发应用的时候&#xff0c;有时会遇到需要读取静态资源的情况。比如开发 Web 应用&#xff0c;程序需要加载模板文件生成输出的 HTML。在程序部署的时候&#xff0c;除了发布应用可执行文件外&#xff0c;还需要发布依赖的静态资…

python 运维自动化之路 Day2

学习内容&#xff1a; 1、模块初识 2、Pyc是什么 3、Python数据类型 4、数据运算 5、bytes数据类型 6、列表和元组的使用 7、字符串常用操作 8、字典的使用 1、模块初识 如果用 python 解释器来编程&#xff0c;从 Python 解释器退出再进入&#xff0c;那么你定义的所有的方法和…

mysql多源复制 知乎_MySQL多主一从(多源复制)同步配置

&#xfeff;>多主一从&#xff0c;也称为多源复制&#xff0c;数据流向。这是小编的服务器部署的一次小尝试&#xff0c;实际工作中还没遇到过形式主库1 -> 从库s主库2 -> 从库s主库n -> 从库s应用场景数据汇总&#xff0c;可将多个主数据库同步汇总到一个从数据库…

关于算法模板和规范的说明

这里记录的算法模板和规范仅供个人使用&#xff0c;可能会存在BUG。由于使用本博客模板导致的BUG及其负面影响&#xff0c;本人概不负责。转载于:https://www.cnblogs.com/hzs2000/p/6682699.html

aMDcpu不支持mysql_Oracle 11.2.0.1在AMD CPU 64位硬件,32位操作系统下的BUG 8670579

通过查询meatlink原因是在ORACLE11.2.0.1 AMD 64位CPU下安装了32位的操作系统&#xff0c;触发了bug 8670579&#xff0c;那要解决该问题只需打上86705bug 8670579硬件信息&#xff1a;CPU:AMD X6在执行dbca的时候也报错如下&#xff1a;[Oracleyorkshi ~]$ dbca## An unexpect…

《网络攻防》第6周作业

20169310 2016-2017-2 《网络攻防实践》第6周学习总结 教材学习内容总结 本周主要学习了《网络攻防---技术与实践》第5、6章的内容&#xff0c;主要学习了 TCP/IP网络协议攻击 和 网络安全防范技术 TCP/IP网络协议攻击概述 网络安全的属性&#xff1a;机密性 、完整性 、可用性…

python读ad域日志_Python实现AD域认证

Python 通过ldap进行ad域账号的校验。首先需要安装python-ldap的模块 http://www.python-ldap.org/。 在这里用的是windows系统&#xff0c;当然比较容易&#xff0c;下载地址 http://pypi.python.org/pypi/python-ldap/。安装后在python 的交互环境里输入import ldap 如果没有…

nios ii小实验——第一个demo指导书

1.新建工程&#xff1a;打开Quartus II 13.0&#xff0c;点击File->New Project Wizard&#xff0c;点击Next后可以看到如图2所示的对话框&#xff0c;选择工程路径给工程命名&#xff08;注意&#xff1a;工程名必须和顶层模块名一致&#xff0c;否则编译会报错&#xff09…

js动态时间(转)

html代码 <span id"timeShow" show_cur_times()></span>js代码 $(function(){//设置1秒调用一次show_cur_times函数setInterval("show_cur_times()",100); });function show_cur_times(){ //获取当前日期var date_time new Date();//定义星期…

shell设计精髓_交互设计精髓

了解数字产品的设计过程工业设计师 Victor Papanek 认为&#xff0c;设计是“为赋予有意义的秩序&#xff0c;作出有意识或直觉的努力”。“All men are designers. All that we do, almost all the time is design, for design is basic to all human activity. The planning …

谈谈我对Javascript中This对象的理解

this 指针的隐式赋值 this总是指向调用该方法的对象&#xff1b; 在事件中&#xff0c;this指向触发这个事件的对象&#xff0c;特殊的是&#xff0c;IE中的attachEvent中的this总是指向全局对象Window&#xff1b; 显示操纵 this 指针 Javascript引擎通过以下两种方式允许我们…

mysql获取下一条自增的id_mysql获取一个表中的下一个自增(id)值的方法

mysql获取一个表中的下一个自增(id)值的方法MySQL: Get next AUTO_INCREMENT value from/for tableNote to self: To get the next auto_increment value from a table run this query: SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA $dbName AND…

WebStorm 快捷键整理

我用的是WebStorm11 2016的版本&#xff0c;个人感觉非常不错&#xff0c;现在整理下快捷键。  Ctrl/ 或 CtrlShift/注释&#xff08;// 或者/*…*/ &#xff09;ShiftF6重构-重命名CtrlX剪切行CtrlD复制并粘贴行CtrlG查找行CtrlShiftUp/Down代码快向上/下移动。F2 或ShiftF2高…