2016-11-15mysql优化笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016-11-15mysql优化笔记相关的知识,希望对你有一定的参考价值。

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

之后登录mysql数据库输入命令:[[email protected] /]# /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的命中率

























以上是关于2016-11-15mysql优化笔记的主要内容,如果未能解决你的问题,请参考以下文章

腾讯云大神亲码“MySQL 调优笔记”,不讲一句废话,全是精华,学会了必拿下年薪30w

mysql调优排序优化,子查询优化

高性能MySql-Schema与数据类型优化1

mysql调优参考笔记

MySQL调优查询优化

三年经验月薪50k我是怎么做到的?Java岗