博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2016-11-15mysql优化笔记
阅读量:6614 次
发布时间:2019-06-24

本文共 2090 字,大约阅读时间需要 6 分钟。

1.mysql连接数:MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,连接数少的话,在大并发下连接数会不够用,会有很多线程在等待其他连接释放,就可能会导致数据库连接超时或者响应时间过长,所以需要调整最大连接数。在mysql的配置文件中增加下列内容:max_connections = 1000 #mysql的最大连接数,默认如果不写的话是100个  wait_timeout = 10 #超时时间 

之后登录mysql数据库输入命令:[root@besttest /]# /opt/lampp/bin/mysql -uroot -p123456

查看当前有多少个连接:show status like '%Threads_connected%';show processlist;

2.缓存的两个纬度:

 查询缓存query cache 缓存的是sql语句和对应的结果集

设置查询缓存参数,在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存储的最大结果。如果查询的结果比这个大,那么就不会被缓存。

查询qcache状态:SHOW VARIABLES LIKE '%query_cache%';

主要查看三个参数信息:query_cache_limit 缓存块大小,超过该大小不会被缓存;query_cache_size 分配给查询缓存的总内存;query_cache_type 是否开启

查询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 数量

存储引擎层-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缓冲池中。

查询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服务时是否自动读取热数据

查询Innodb_buffer_pool当前使用情况:SHOW STATUS LIKE '%Innodb_buffer_pool%';

主要关注的两个参数
Innodb_buffer_pool_read_requests 总共查询bp的次数
Innodb_buffer_pool_reads 从物理磁盘中获取到数据的次数,通过这两个参数我们可以知道bp的命中率

转载于:https://www.cnblogs.com/920fjs/p/6064998.html

你可能感兴趣的文章
解决eclipse中无法删除Tomcat服务器中的项目,报maven is required and cannot be removed from the server错误情况...
查看>>
修改页面JS 360浏览器
查看>>
尚学linux课程---3、linux网络说明
查看>>
Git 跟 GitHub 是什么关系?
查看>>
String.split()方法
查看>>
IE6下jQuery选中select的BUG
查看>>
Tensorflow在win10下的安装(CPU版本)
查看>>
嵌入式平台做深度学习算法,不可不重视的4件事
查看>>
一次优化记录
查看>>
如何调用一个数据完整的firefox浏览器
查看>>
cgroup代码浅析(2)
查看>>
会计的思考(42):会计如何转变为公司的内部财务顾问
查看>>
利用钥匙串,在应用里保存用户密码的方法
查看>>
final,finally和finalize之间的区别
查看>>
python 装饰器
查看>>
[辟谣]下蹲猛起来眼前发黑是心脏衰竭的表现?别扯了!
查看>>
paper 96:计算机视觉-机器学习近年部分综述
查看>>
vuex状态管理详细使用方法
查看>>
不要等有了足够的钱才选择去创业!!!
查看>>
手把手教你画嘴巴,以后再也不怕画嘴巴了
查看>>