MySQL 配置文件优化
MySQL 配置文件优化
查看MySQL服务器配置信息:
show variables;
查看MySQL服务器运行的各种状态值:
show global status;
1. 慢查询
show variables like '%slow%';
show global status like '%slow%';
mysqldumpslow -s c -t 20 host -slow.log
分析慢查询日志,找出有问题的SQL语句,慢查询时间不宜设置过长,否则意义不大,最好在5秒以内,如果你需要微秒级别的慢查询,可以考虑给MySQL打补丁:http://www.percona.com/docs/wiki/release:start,记得找对应的版本。
2. 连接数
经常会遇见”MySQL: ERROR 1040: Too manyconnections” 的情况:
一种是访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力。
一种情况是MySQL配置文件中max_connections值过小。
查看最大连接数:
show variables like 'max_connections';
查看mysql服务器过去的最大连接数:
show global status like 'max_used_connections';
理想值:max_used_connections / max_connections * 100% ≈ 85%
最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接数上限设置的过高了。
3. key_buffer_size
key_buffer_size是对MyISAM表性能影响最大的一个参数,不过数据库中多为Innodb
查看key_buffer_size设置大小:
show variables like 'key_buffer_size';
查看key_buffer_size使用情况:
show global status like 'key_read%';
计算索引未命中缓存的概率:key_cache_miss_rate = Key_reads / Key_read_requests * 100%
key_cache_miss_rate在0.1%以下都很好(每1000个请求有一个直接读硬盘),如果key_cache_miss_rate在0.01%以下的话,key_buffer_size分配的过多,可以适当减少。
4. key_blocks_*参数
show global status like 'key_blocks_u%';
Key_blocks_unused:表示未使用的缓存簇(blocks)数
Key_blocks_used:表示曾经用到的最大的blocks数
理想值:Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈ 80%
5. 临时表
当执行语句时,关于已经被创造了的隐含临时表的数量,查看命令:
show global status like 'created_tmp%';
每次创建表时Created_tmp_tables 都会增加,如果在磁盘上创建,Created_tmp_disk_tables也会增加,Created_tmp_files表示服务器创建的临时文件数
理想值:Created_tmp_disk_tables / Created_tmp_tables * 100% ≤25%
查看服务器对临时表的配置:
show variables where variable_name in('tmp_table_size','max_heap_table_size');
6.打开表的情况
show global status like 'open%tables%';
open_tables 表示打开表的数量,opened_tables表示打开过的表数量,如果opened_tables数量过大,说明配置中 table_cache(5.1.3之后这个值叫做table_open_cache)值可能太小
查询服务器table_cache值:
show variables like 'table_open_cache';
理想值:open_tables / opened_tables * 100% ≥ 85%
理想值:open_tables / table_cache * 100% ≤95%
7. 进程使用情况
如果我们在MySQL服务器配置文件中设置了thread_cache_size,当客户端断开之后,服务器处理此客户的线程将会缓存起来以响应下一个客户而不是销毁(前提是缓存数未达上限)。Threads_created表示创建过的线程数:
show global status like 'thread%';
如果发现Threads_created值过大的话,表明 MySQL服务器一直在创建线程,这也是比较耗资源,可以适当增加配置文件中thread_cache_size值,查询服务器 thread_cache_size配置:
show variables like 'thread_cache_size';
8. 查询缓存(query cache)
查看服务器query_cache配置情况:
show variables like 'query_cache%';
参数解释:
query_cache_limit:超过此大小的查询将不缓存。
query_cache_min_res_unit:缓存块的最小值。
query_cache_size:查询缓存大小。
query_cache_type:缓存类型,决定缓存什么样的查询。
query_cache_wlock_invalidate:表示当前客户端,正在对MyISAM表进行写操作时,读请求是要等SRITE LOCK释放资源后再查询,还是允许直接从Query Cache中读取结果,默认为OFF(可以直接从Query Cache 中读取结果)。
查看服务器query_cache使用情况:
show global status like 'qcache%';
参数解释:
Qcache_free_blocks:缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE会对缓存中的碎片进行整理,从而得到一个空闲块。
Qcache_free_memory:缓存中的空闲内存。
Qcache_hits:每次查询在缓存中命中时就增大
Qcache_inserts:每次插入一个查询时就增大。命中次数除以插入次数就是不中比率。
Qcache_lowmem_prunes:缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个数字不断增长,表示可能碎片非常严重,或内存很少。
Qcache_not_cached:不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句或者用了now()之类的函数。
Qcache_queries_in_cache:当前缓存的查询(和响应)的数量。
Qcache_total_blocks:缓存中块的数量。
9. 排序使用情况
它表示系统中对数据进行排序时所使用Buffer,查看命令:
show global status like 'sort%';
增大sort_buffer_size 会减少Sort_merge_passes和创建临时文件的次数,但盲目增加并不一定能提高速度。
10. 文件打开数
当open_files大于open_files_limit值时,mysql数据库就会发生卡住的现象,导致web服务器打开不响应的页面。
查看open_files命令:
show global status like 'open_files';
查看open_files_limit命令:
show variables like 'open_files_limit';
理想值:open_files / open_files_limit *100% ≤ 75%
11.Innodb_buffer_pool_size 的合理设置
show status like 'Innodb_bufferpool_%';
根据实际运行场景进行调整
read 命中率:
(Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads) / Innodb_buffer_pool_read_requests = ?
write 命中率:
Innodb_buffer_pool_pages_data / Innodb_buffer_pool_pages_total
MySQL 配置文件优化相关推荐
- php连接数据库配置优化,小蚂蚁学习mysql性能优化(9)--操作系统配置优化--mysql配置文件优化...
操作系统配置优化 数据库是基于操作系统的,目前大多数mysql都是安装在linux系统之上,所以对于操作系统的一些参数配置也会影响到mysql的性能 网络方面的配置修改 \etc\sysctal ...
- MySQL配置文件优化
1.本公司适用的配置文件 [client] port=3306 socket=/tmp/mysql.sock [mysql] no-auto-rehash default-character-set= ...
- mysql tcp优化_mysql 优化
Mysql数据库优化配置 操作系统配置优化 数据库是基于操作系统的,由于mysql安装在linux上,所以对于操作系统的一些参数配置也会影响到mysql性能 网络方面配置,修改/etc/sysctl. ...
- Mysql慢查询日志的使用 和 Mysql的优化
一.生成实验数据 原理:sql 蠕虫复制(这种生成数据方式同样适用于数据表中有主键的情况). insert into comic (name,pen_name,cover) select name,p ...
- mysql参数配置详情_MySQL配置文件mysql.ini参数详解、MySQL性能优化
类型:数据库类大小:1.7M语言:英文 评分:6.6 标签: 立即下载 my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数. my.ini ...
- discuz mysql配置文件_MySQL优化配置文件my.ini(discuz论坛)
在Apache, PHP, MySQL的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分.对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接影响到论坛的速度和承载量!同 ...
- mysql语句生成工具_强烈推荐一款MySQL语句优化辅助工具,值得收藏
概述 优化SQL,是DBA常见的工作之一.如何高效.快速地优化一条语句,是每个DBA经常要面对的一个问题.对于一名DBA来说,掌握一门语言配合自己的工作是非常必要的.相对于shell的简单.perl的 ...
- Mysql性能优化方案
2019独角兽企业重金招聘Python工程师标准>>> 内容简介:这是一篇关于mysql 性能优化的文章.网上有不少mysql 性能优化方案,不过,mysql的优化同sql serv ...
- MySQL性能优化之参数配置
1.目的: 通过根据服务器目前状况,修改MySQL的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...
最新文章
- 原来流行也可以变成怀旧!
- oracle19c怎么创建Scott,Oracle db-sample-schema-19c安装(scott hr oe pm ix sh bi用户创建部署)...
- python和什么一起学_[lvog1]和小菜一起学python(零基础开始学习)
- C#接口中为什么不能像java那样使用static?
- JDBC基本知识总结概括及8个阶段优化过程:
- Linux SVN 服务器配置以及客户端使用
- Oracle增加自增长列
- TCP连接建立与释放
- wps启用编辑按钮在哪里_wps页面设置在哪里?wps页面设置使用教程
- 《林林数据结构笔记》线段树求数组区间和,单点更新,区间更新+lazy思想
- 国务院:关于促进云计算创新发展 培育信息产业新业态的意见
- HazelEngine 学习记录 - Shader Abstraction and Uniforms
- windows获取显卡的显存
- PMP备考错题集-强化习题二
- 面向OLAP的列式存储DBMS-11-[ClickHouse]的常用字符串操作
- 什么是React Hook?
- Oracle数据库如何干净的删除
- 2.安装组件客户端程序(华为云学习笔记,HCIP,大数据)2022.6.6
- 【竞赛篇-杭创】杭州市大学生创业大赛参赛经验
- PMM2:迟到的礼物-2.8.0版本发布
热门文章
- 随机数排列JAVA_随机数生成器,按排序顺序
- 现代农业谋定县域经济-农业大健康·万祥军:载体幸福美丽
- LeetCode:贪婪算法
- @JsonIgnoreProperties转换实体时忽略json中不存在的字段
- subprocess.Popen 运行windows命令出现“句柄无效”报错的解决方法
- Linux命令操作,文件复制,删除修改等
- 博客园北京俱乐部2009年2月28日活动
- 前OnePlus视觉设计师蔡孝永:视觉设计师都在想些什么?
- 人不会一直寂寞,匿名社交也不会一直活跃?
- 产品经理的四大境界与核心能力